0

私のページはすべて、典型的な固定幅マージン左右自動レイアウトを使用しています。

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

ここに小さな問題があります。これらのページの一部はウィンドウよりも高いため、右側に垂直スクロールバーが表示されます。これらのページと他のページを切り替えると、メインコンテナが少し移動します(vスクロールバーの半分の幅)。親要素(本体)の幅が変わったからだと思います。

しかし、この動作を抑制するためのライブラリまたは既存のハックがあるかどうかを知っている人はいますか?(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)。

4

1 に答える 1

1

element.offsetHeight と element.scrollHeight を比較できます。これに応じてコンテナの位置を変更します。

于 2012-04-17T21:23:13.030 に答える