当滚动条出现时,Hack以保持水平元素位置

时间:2012-04-17 21:15:02

标签: javascript html css position scrollbar

我的网页都使用典型的固定宽度边距 - 左右自动布局。

.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)。

1 个答案:

答案 0 :(得分:1)

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