gpt4 book ai didi

javascript - 如何禁止 jquery 函数在一定时间内执行

转载 作者:行者123 更新时间:2023-12-03 03:38:37 25 4
gpt4 key购买 nike

我有一个 jQuery 函数,它可以计算两个幻灯片之间的距离,并检测它们是否已经滚动过去,并告诉它显示包含重要信息的第一张幻灯片。

但是,它显示一次,然后 if语句循环并不断显示它,这是预期的。

我想知道是否有办法强制该函数在再次执行之前等待 25 秒左右?任何帮助将不胜感激。

这是 jQuery 代码:

$(window).scroll(function() {
$('.infoIdentifier').each(function() {
var scroll = $(window).scrollTop();
var objectpos = $(this).offset().top - 600;
var nextobject = $(this).parent().nextAll('.slideshow').children(".infoIdentifier")
if (nextobject.length === 0) {
var nextobjectpos = 10000;
} else {
var nextobjectpos = nextobject.offset().top - 600;
}
if (scroll > objectpos && scroll < nextobjectpos) {
var $this = $(this).parent('.slideshow');
var $currentSlide = $this.find('.active');
var $nextSlide = $this.children('.jumbotron').first();
$nextSlide.fadeIn(500).addClass('active');
$currentSlide.fadeOut(500).removeClass('active');
}
});
});

对于 HTML,幻灯片保存在主容器中,每个包含重要信息的幻灯片都被标记为 class = 'infoIdentifier' 。这部分函数完成了它的工作。计算很好,类的应用也很好,但是,如何禁用 if (scroll > objectpos && scroll < nextobjectpos){声明 x 秒数。任何帮助将非常感激。谢谢!

最佳答案

这是实现这一目标的一种方法。我在滚动函数外部添加了一个名为 wait 的 bool 值,最初设置为 false

然后我将 !wait 添加为 if 逻辑的条件,这意味着它只会验证 wait 当前是否为

然后在该 block 内,我将 wait 设置为 true,并启动 setTimeout 25 秒,之后 wait 设置回 false

在这 25 秒内,该幻灯片代码将不会运行。

var wait = false;

$(window).scroll(function() {
$('.infoIdentifier').each(function() {
var scroll = $(window).scrollTop();
var objectpos = $(this).offset().top - 600;
var nextobject = $(this).parent().nextAll('.slideshow').children(".infoIdentifier")
if (nextobject.length === 0) {
var nextobjectpos = 10000;
} else {
var nextobjectpos = nextobject.offset().top - 600;
}
if (!wait && scroll > objectpos && scroll < nextobjectpos) {
var $this = $(this).parent('.slideshow');
var $currentSlide = $this.find('.active');
var $nextSlide = $this.children('.jumbotron').first();
$nextSlide.fadeIn(500).addClass('active');
$currentSlide.fadeOut(500).removeClass('active');

wait = true;
setTimeout(function() {
wait = false;
}, 25000);
}
});
});

关于javascript - 如何禁止 jquery 函数在一定时间内执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45738367/

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