我正在努力解决有关固定菜单项的一些问题。我应该提一下,我仍然是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文件,则应将每个项目位置更改为固定)。
如果有人可以帮我解决这个问题,我会非常感激!
答案 0 :(得分:0)
我认为你的innerHeight jQuery函数中缺少你的()。例如:
var a=$(document).scrollTop()+window.innerHeight();
这就是为什么它无法检测到窗户的高度。