【发布时间】:2015-01-14 05:27:38
【问题描述】:
在一个页面中,我有几个部分,在第一和第二之间我有一个导航栏菜单,当它到达顶部时,它会触发一个将其固定到顶部的功能。这可以通过计算每次滚动的偏移量来正常工作,只是有时会报告错误的值并且导航栏开始闪烁。
这是自定义类 .css:
.sticky {
position: fixed;
top: 0;}
和自定义 .js
var checkStickyMenu = function() {
if ($(window).scrollTop() > $("#secondary-nav").offset().top ){
$("#secondary-nav").addClass("sticky")
}
else {
if ($("#secondary-nav").hasClass("sticky")){
$("#secondary-nav").removeClass("sticky");
}}}
$(window).on("scroll", function() {
checkStickyMenu();
console.log("scroll " + "win scroll: " + $(window).scrollTop() + " secnav: " + $("#secondary-nav").offset().top);
})
checkStickyMenu();
console.log() 给出
custom.js:16 scroll win scroll: 1010.8571 secnav: 377.98209999999995
custom.js:16 scroll win scroll: 1011.4286 secnav: 1011.4286
custom.js:16 scroll win scroll: 1018.8571 secnav: 377.98209999999995
custom.js:16 scroll win scroll: 1031.4286 secnav: 1031.4286
custom.js:16 scroll win scroll: 1053.1428 secnav: 377.9820333984376
custom.js:16 scroll win scroll: 1067.4286 secnav: 1067.4286
custom.js:16 scroll win scroll: 1070.8572 secnav: 377.98213896484367
custom.js:16 scroll win scroll: 1071.4286 secnav: 1071.4286
如您所见,它从 377(正确值)跳到 10XX(不正确),从而使导航栏删除了该类。
【问题讨论】:
标签: javascript jquery html css