如何停止固定的菜单项以与页脚重叠

时间:2013-09-05 09:46:50

标签: javascript menu footer fixed overlapping

我正在努力解决有关固定菜单项的一些问题。我应该提一下,我仍然是javascript的初学者。 基于我在本网站上找到的一些答案,更具体的here,我在某种程度上解决了这个问题。 这是我正在使用的代码:

`<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,则上面的像素几乎可以正常,如果分辨率高于或低于我需要更改数字,以便菜单保持原样。

另一个更符合我需求的答案是this,并根据我制作了自己的fiddle。多数民众赞成我希望我的网站看起来像,只是我不能改变代码为我工作,因为我不明白整个事情做出必要的改变(一次,我不明白为什么需要捕手divs或js:

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

如果sticky.css是整个css文件,则应将每个项目位置更改为固定)。

如果有人可以帮我解决这个问题,我会非常感激!

1 个答案:

答案 0 :(得分:0)

我认为你的innerHeight jQuery函数中缺少你的()。例如:
var a=$(document).scrollTop()+window.innerHeight();

这就是为什么它无法检测到窗户的高度。