javascript - 如何循环播放幻灯片上进度条的函数?

标签 javascript jquery

我有一个以 5000 间隔更改图像的幻灯片。

显示一张图片与另一张图片之间的进度条的函数如下:

function timebar(){
    $('#timebar').stop().css({width:0});
    $('#timebar').animate({width:'100%'},5000);
}

我在幻灯片加载后调用此函数,以便它们同时处理。

我希望此函数循环,以便为每张幻灯片重置时间栏:

function timebar(){
    $('#timebar').stop().css({width:0});
    $('#timebar').animate({width:'100%'},5000);
    setTimeout(timebar(),5000);
}

但是,完成此操作后,我收到错误超出最大调用堆栈大小

如何让此函数每 5000ms 重复一次?

最佳答案

您需要将函数引用传递给setTimeout,当前您正在递归调用timebar()函数,而setTimeout根本没有用处.

您需要使用

setTimeout(timebar,5000);

而不是

setTimeout(timebar(),5000);

关于javascript - 如何循环播放幻灯片上进度条的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142374/

相关文章:

jquery - 插入图像时防止跳转文本

javascript - 使用 jQuery 获取包括 HTML 元素的选择选项

javascript - 引用没有名称的 JSON 数组

javascript - 如何设置更改单选按钮的值?

jquery - 如何为多个选择器上的多个事件处理程序执行相同的函数?

javascript - 使用 javascript 自动刷新输入字段

javascript - 通过 jQuery 选择随机 p 节点

javascript - 刷新页面添加新的随机参数

javascript - Nodejs 无法从 html 引用中找到图像

javascript - 在for循环中声明两个变量