gpt4 book ai didi

javascript - 每 x 秒调用一个 Javascript 函数并在 y 秒后停止?

转载 作者:行者123 更新时间:2023-11-30 10:29:57 26 4
gpt4 key购买 nike

我想在单击按钮后调用一个 Javascript 函数,使其每 100 毫秒循环一次,持续 1.5 秒,然后暂停。

我的想法是,我想让这个 Accordion slider 能够使用这个自定义 jQuery 滚动条显示可滚动的内容(我不知道任何其他更好的自定义跨浏览器滚动条)。

每次用户单击其中一项时,都必须使用此函数重建滚动条,使用:

$(".ac-big").customScrollbar("resize")

为了使转换运行顺利,我使用了 setInterval,如下例所示:

<script type="text/javascript">
$(window).load(function () {
$(function(){
setInterval(function(){
$(".ac-big").customScrollbar("resize")
},100);
});
</script>

问题是脚本非常耗费资源。没有必要每 100 毫秒运行一次。我想让它在用户单击一个单选按钮后每 100 毫秒运行一次,持续 1.5 秒。

另一个问题来了。由于 Accordion slider 是使用单选按钮构建的,如何在单选按钮点击时调用 javascript 函数?

我已将 setTimeout 和 setInterval 插入到标记中,因为我相信我必须结合使用这两个。如果我拥有所有必要的构建 block ,我就不会在这里浪费您的时间。

最佳答案

鉴于此:

I want to call a Javascript function after clicking a button, make it loop every 100 milliseconds for 1,5 seconds and then pause it.

应该这样做:http://jsfiddle.net/pUWHm/

// I want to call a Javascript function after clicking a button
$('.button').click(function() {
var started = Date.now();

// make it loop every 100 milliseconds
var interval = setInterval(function(){

// for 1.5 seconds
if (Date.now() - started > 1500) {

// and then pause it
clearInterval(interval);

} else {

// the thing to do every 100ms
$(".ac-big").customScrollbar("resize")

}
}, 100); // every 100 milliseconds
});

该策略是在您单击按钮时开始间隔,并保存该间隔 ID。您还可以在开始时保存。每次间隔运行时,您都会检查它是否足够长。如果还不到时候,就去做吧。如果到了时间,请清除间隔,这样它就不会再次触发。

关于javascript - 每 x 秒调用一个 Javascript 函数并在 y 秒后停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432169/

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