【发布时间】:2022-01-18 02:37:23
【问题描述】:
一旦用户滚动页面超过 100 像素,我正在尝试向我的粘性容器添加一个类,但它会滞后,并且无法控制切换类。
$(function () {
$nav = $(".topmenu-container");
$(document).scroll(function () {
if ($(this).scrollTop() >= 100) {
$nav.addClass('scrolled');
} else {
$nav.removeClass('scrolled');
}
});
});
这是我目前所拥有的。我有相同的函数,但没有 if 子句和 toggleClass 函数,但效果相同。
在这里,您会看到滚动时粘在顶部的容器,并且我想在用户从顶部滚动超过 100 像素时添加该类
编辑:我现在输出 scrollTop 值并看到,它似乎卡在应该发生切换的点上。它不断在 156px 和 87px 之间跳跃,这使得切换每秒发生多次。有人有想法吗?
【问题讨论】:
-
代码似乎工作正常:jsfiddle.net/RoryMcCrossan/q8v7g49o。你能更具体地谈谈这个问题吗?
-
代码应该可以正常工作。虽然根据我的经验,最好在 $(window) 上设置滚动侦听器。尝试使用 $(window).on('scroll', function(){}) 而不是 $(document).scroll(function () {})。
-
@RoryMcCrossan 是的,我无法滚动超过切换类的限制,即 100 像素。它一直在疯狂地切换。
标签: javascript html jquery css