首页 >web前端 >html教程 >CSDN的隐藏侧边栏功能是怎么实现的?_html/css_WEB-ITnose

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

WBOY
WBOY原创
2016-06-24 12:18:501983浏览

 比如这个页面的“隐藏侧边栏”
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>    </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,*' }

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn