我知道用javascript和css可以通过这样的方法控制滚动条的显示和隐藏。
<body style="overflow-y:hidden;">但是如过用javascript动态改变这个overflow属性,会使页面在隐藏和显示的瞬间左右晃动(因为多出了一个滚动条嘛)。
我不想出现这样的晃动,有办法没?或者有这样的方法也可以:禁用浏览器滚动条,但是不隐藏。
请指教!

解决方案 »

  1.   

    有一个不是办法的办法,你可以用一个透明的DIV去遮挡住滚动条,
    就和这个类似<style type="text/css"> 
    body { 
    margin: 0px; 
    } div.content { 
    top: 0px; 
    left: 0px; 
    width: expression(document.body.clientWidth); 
    height: expression(document.body.clientHeight); 
    position: absolute; 
    overflow: auto; 
    z-index: 0; } div.cover { 
    top: 0px; 
    left: 0px; 
    position: absolute; 
    width: expression(document.body.clientWidth); 
    height: expression(document.body.clientHeight); 
    background-color: white; 
    filter: Alpha(opacity=0); 
    z-index: 1; 

    </style> 
    <script language="javascript"> 
    function showMsg() { 
    window.alert('N秒钟后可拖动滚动条。'); 
    window.setTimeout('self.cover.style.display = \'none\';', 5000); 

    </script> 
    <body  onload="showMsg();"> 
    <div class="content"> 
    <pre> 










































































































































































    </pre> 
    </div> 
    </body>
      

  2.   

    晕了,还是用这把,我发现用这个方法设置滚动条,它是一直存在的
    OVERFLOW:scroll; 
      

  3.   

    各位高手们,上面的方法貌似不可以啊。scroll="no"的方法也是把滚动条隐藏起来,一旦隐藏滚动条就会使浏览器窗口的宽度发生变化,导致页面晃动一下。
    而且貌似firefox不支持 scroll="no"。我想只要是隐藏滚动条都会导致页面的晃动。  所以想问一下有没有什么办法是只禁用滚动条但是不隐藏滚动条。 例如可以把滚动条变成灰色那样的。谢谢了,很着急!
      

  4.   

    取消居中,用 margin 或 absolute
      

  5.   

    或用<div>替补滚动条的位置