CSDN的隐藏侧边栏功能是怎么实现的?_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 12:18:50
原创
2236人浏览过

 比如这个页面的“隐藏侧边栏”
http://bbs.csdn.net/
给个源码看看


回复讨论(解决方案)

其实就是设置 css,显示style.display='block',隐藏style.display='node'
我写了个例子,与csdn的实现方式可能不一样

<style>  html,body{ width:100%;height:100%;padding:0px;margin:0px;overflow:hidden  }  #ifr1{height:100%;width:200px;float:left;  }  #ifr2{height:100%;width:100px float:right; }  #hand{    position: absolute;    z-index: 99;    left: 200px;    top: 48%;    height: 50px;    word-break: break-all;    display: block;    width: 20px;    background: #fff;    text-align: center;    border: 1px solid #ccf;  } </style> <iframe id="ifr1" src="http://bbs.csdn.net/left_menu"></iframe>  <iframe id="ifr2" src="http://bbs.csdn.net/home"></iframe>  <div id="hand" >隐藏</div>  <script> function $(id){return document.getElementById(id) } var w,hand=$('hand'),ifr1=$('ifr1'),ifr2=$('ifr2'); hand.onclick=function(){ //点击隐藏按钮  var sty=ifr1.style,disp;  sty.display=sty.display=='none'?'block':'none';  doResize(); } function doResize(){ //调整位置大小  var w=document.body.clientWidth;  var sty=ifr1.style,disp;  if(sty.display=='none'){    ifr2.style.width='100%';    hand.style.left='1px';  }else{    ifr2.style.width=w-220+'px';    hand.style.left='200px';  } } window.onload=window.onresize=doResize; doResize() </script>
登录后复制

csdn用的是frameset,设置其中framset的cols属性为0,*收缩导航,设置为230,*展开导航

  


    
    
  

我这样写为什么“隐藏”按钮不显示?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>  <head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>左右布局侧边栏演示</title>        <link href="http://csdnimg.cn/www/images/favicon.ico" rel="SHORTCUT ICON"><style>  //html,body{ width:100%;height:100%;padding:0px;margin:0px;overflow:hidden  }  //#ifr1{height:100%;width:200px;float:left;  }  //#ifr2{height:100%;width:100px float:right; }  #hand{    position: absolute; // 绝对定位    z-index: 10001; // 优先级最高(离用户最近)    left: 200px;    top: 48%;    height: 50px;    word-break: break-all;    display: block;    width: 20px;    //background: #fff;    text-align: center;    border: 1px solid #ccf;  } </style>  </head>  <frameset cols="230,*" frameborder="no" border="0" framespacing="0">    <frame src="左右框架窗体1.html" name="leftFrame"  noresize="noresize" id="ifr1" title="leftFrame" />    <frame src="左右框架窗体1.html" name="mainFrame" id="ifr2" title="mainFrame" />  </frameset>  <noframes>    <div id="hand" >隐藏</div><script> function $(id){   return document.getElementById(id) } var w,hand=$('hand'),ifr1=$('ifr1'),ifr2=$('ifr2'); hand.onclick=function(){ //点击隐藏按钮  var sty=ifr1.style,disp;  sty.display=sty.display=='none'?'block':'none';  doResize(); } function doResize(){ //调整位置大小  var w=document.body.clientWidth;  var sty=ifr1.style,disp;  if(sty.display=='none'){    ifr2.style.width='100%';    hand.style.left='1px';  }else{    ifr2.style.width=w-220+'px';    hand.style.left='200px';  } } window.onload=window.onresize=doResize; doResize() </script>    <body>    </body>  </noframes></html>
登录后复制

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>  <head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>CSDN论坛首页 - CSDN.NET</title>    <script src="/assets/application-1a33bfd3d5ee7e433197442aeb9c03b6.js" type="text/javascript"></script>    <script type="text/javascript">      $(function() {        main_page_js.index_page();      });    </script>    <link href="http://csdnimg.cn/www/images/favicon.ico" rel="SHORTCUT ICON">  </head>  <frameset cols="230,*" frameborder="no" border="0" framespacing="0">    <frame src="/left_menu" name="leftFrame"  noresize="noresize" id="leftFrame" title="leftFrame" />    <frame src="/home" name="mainFrame" id="mainFrame" title="mainFrame" />  </frameset>  <noframes>    <body>    </body>  </noframes></html>
登录后复制

我研究了各位老大的方法,结果死活只在IE里才好用,其它的遨游、谷歌之类的点击了都没有反应,代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>  <head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>左右布局侧边栏演示</title>  </head><frameset rows="*" name="top_function" id="top_function" frameborder="NO" border="0" framespacing="0">  <frameset cols="20%,20,*" name="left_function" id="left_function" frameborder="NO" border="0" framespacing="0">    <frame src="left.html" name="leftFrame" id="leftFrame" title="leftFrame" /><frame src="left_close.html" name="left_close" id="left_close" scrolling="NO" noresize="noresize" title="left_close" style="border-color:#FF0000; border-style:solid; border-width:1px; padding-right:2" />    <frame src="right.html" name="mainFrame" id="mainFrame" title="mainFrame" />  </frameset></frameset>  <noframes>    <body><p>此网页使用了框架,但您的浏览器不支持框架。</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/ai/950">
                            <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680003823895.png" alt="ViiTor实时翻译">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/950">ViiTor实时翻译</a>
                            <p>AI实时多语言翻译专家!强大的语音识别、AR翻译功能。</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="ViiTor实时翻译">
                                <span>116</span>
                            </div>
                        </div>
                        <a href="/ai/950" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="ViiTor实时翻译">
                        </a>
                    </div>
                    </body>  </noframes></html>
登录后复制

left_close.html文件在这里,和上面的放在一个目录里:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>关闭和显示侧边栏</title><SCRIPT LANGUAGE="javascript"><!--function shleft(){ if (parent.left_function.cols!="20%,20,*"){  parent.left_function.cols="20%,20,*" } else{  parent.left_function.cols="0,20,*" }}//--></SCRIPT></head><body onclick="shleft();"></body></html>
登录后复制


各位老大帮忙看看吧!拜托了!

这个也没有效果:

 if (parent.document.getElementById('top_function').rows!='10%,20,*'){  parent.document.getElementById('top_function').rows='10%,20,*' }else{  parent.document.getElementById('top_function').rows='0,20,*' }
登录后复制

、脚本写最简单吧,。。。

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号