gpt4 book ai didi

jQuery 滚动事件行为

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:55 30 4
gpt4 key购买 nike

我有一个关于滚动事件的一般性问题。

假设我有一个名为 .notificationdiv。当用户滚动超过 500 时,我想添加一个类 .ns--show。如果它们小于 500,我想添加类 .ns--hide,但前提是用户已经滚动超过 500。

这是 jQuery 代码

$(window).scroll(function(){

var st = $(this).scrollTop();

if (st >= 500) {
$('.notification').addClass('ns--show');
} else {
$('.notification').removeClass('ns--show').addClass('ns--hide');
}
});

我遇到的问题是,当浏览器加载时,scrollTop 为 0。因此它会在加载时立即添加类 .ns--hide,dom 如下所示:

<div class="notification ns--hide"></div>

有没有一种方法可以这样写,使其像“不要添加 ns--hide 除非用户滚动超过 500,然后向上滚动不到 500”

注意:我不能简单地删除同一个类 ns--show,因为我正在使用 css 转换/转换来改变 div 在 hide 类上的外观。

编辑:

我根据下面的帖子想出了一个解决方案:

if (st >= 500) {
if ($('.notification').hasClass('ns--hide')) {
$('.notification').removeClass('ns--hide').addClass('ns--show');
} else {
$('.notification').addClass('ns--show');
}
} else {
if ($('.notification').hasClass('ns--show')) {
$('.notification').removeClass('ns--show').addClass('ns--hide');
}
}
}

最佳答案

您可以使用一个标志来指示添加了 ns-show 类。

例如:

$(window).scroll(function(){

var st = $(this).scrollTop();

if (st >= 500) {
$('.notification').removeClass('ns--hide');.addClass('ns--show class-added');
} else {
if($('.notification').hasClass('class-added'))
$('.notification').removeClass('ns--show class-added').addClass('ns--hide');
}
});

class-added 是一个标志,可帮助您了解滚动何时超过 500px。

希望对您有所帮助。

问候。

关于jQuery 滚动事件行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26048252/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com