我的页面全部使用典型的fixed-width-margin-left-right-auto布局。

.container{
     width:900px;
     margin:0 auto;
}


小问题来了。这些页面中的某些页面比窗口高,这意味着它们应在右侧显示垂直滚动条。在这些页面和其他页面之间切换时,主容器将移动一点(v-scrollbar的一半宽度)。我知道这是因为父元素(主体)的宽度发生了变化。

但是,是否知道是否有图书馆或现有的黑客工具可以抑制这种行为? (body {overflow-y:scroll;}除外)

回复@Mateusz:
感谢Matousz,一个好主意。我尝试了以下代码

console.log($('body')[0].offsetHeight+' '+$('body')[0].scrollHeight+' '+$('html'[0].offsetHeight+' '+$('html')[0].scrollHeight);


测试结果是

           doc smaller than win              doc larger than win
firefox    1012 1012 1008 1362               1012 1012 1008 1007
chrome/ie  549 1525 545 545                    549 545 545 545


因此它们具有不同的行为,并且比较线程的线程也不同(1和4)。

最佳答案

您可以比较element.offsetHeight和element.scrollHeight。并根据此更改容器的位置。

09-07 21:44