0

だから私はhttp://linenwoods.com/random/this.htmlでホストされている私の問題の簡単な例を持っています

問題は、サイドバーが使用position: fixed;しているため、ビューポートのサイズに依存していることです。ブラウザを縮小して水平スクロールバーを使用すると、メインコンテンツのdivがサイドバーと重なっています。ブラウザを縮小するときに水平スクロールバーを使用するときに、jQueryを使用してサイドバーの位置を調整しようとしています。

問題を解決するために使用しているjQueryのビット:

$(document).scroll(function(e) {
  $('#right').css({
    'left': 0 - $(document).scrollLeft()
  });
});

jQueryはほぼ機能しますが、固定位置の左/右/上/下の値はビューポートの幅/高さに依存するため、この小さな関数にビューポートの幅を計算するための自動値を与えることはできません..これは簡単に修正できるか、ばかげた量のコードが必要でしたか?私はjQueryを初めて使用するため、ドキュメントを詳しく調べて、必要なものを正確に見つけるのは困難です。私が探しているのは正しい方向への一歩です。

どんな助けでも大歓迎です、

前もって感謝します

4

2 に答える 2

1

単に「ジャンプ」したくない場合は、CSS で指定left:0してみてください。#right

ただし、これによりレイアウトがわずかに変更されますが、「ジャンプ」効果は削除されるはずです。

于 2013-02-21T05:12:05.060 に答える
0

これを試してください:

フィドルを見て、水平スクロールバーでこれを試してください

全画面プレビューを検討する

$(document).scroll(function (e) {
   $('#right').animate({
    'left': 0 - $(document).scrollLeft()
   }, 100);
});

最初に必要:

#right {
   width: 150px;
   position: fixed;
   left:50px;        /* <-----initially required*/
}
于 2013-02-21T05:40:19.687 に答える