-1

固定メニュー項目に関するいくつかの問題に苦しんでいます。私はまだjavascriptの初心者です。このサイトで見つけたいくつかの回答に基づいて、ここでより具体的に、問題をある程度修正しました。ここに私が使用しているコードがあります:

`<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js">    </script>
<script>
  function checkOffset() {
    var a=$(document).scrollTop()+window.innerHeight;
    var b=$('#footer').offset().top;
    if (a<b) {
      $('#menuC').css('bottom', '0px');
    } else {
      $('#menuC').css('bottom', (0+(a-b))+'px');
    }
  }
  $(document).ready(checkOffset);
  $(document).scroll(checkOffset);
</script>`  

メニューはフッターの前で止まります。私が今抱えている問題は、ブラウザの高さによっては、メニュー項目が常に同じ場所にあるとは限らないことです. たとえば、解像度が 1366 x 768 の場合、上記のピクセルはほとんど問題ありません。解像度がそれよりも高いか低い場合は、メニューが本来あるべき場所にとどまるように数値を変更する必要があります。

私のニーズにより適した別の答えはこれであり、それに基づいて自分のフィドルを作成しました。それが私が自分のサイトをどのように見せたいかということですが、必要な変更を加えるために全体を理解していないため、コードを変更して機能させることはできません(一度、キャッチャーが必要な理由がわかりませんdiv または js 内:

 `if(isScrolledTo(sticky)) {
  sticky.css('position','fixed');
  sticky.css('top','2px');` 

sticky.css が css ファイル全体である場合、これによりすべてのアイテムの位置が fixed に変更されます)。

誰かがこの問題を解決するのを手伝ってくれたら、とても感謝しています!

4

1 に答える 1

0

innerHeight jQuery 関数に () がないと思います。例えば ​​:
var a=$(document).scrollTop()+window.innerHeight();

そのため、ウィンドウの高さを検出できません。

于 2013-09-05T09:54:11.560 に答える