我正在尝试创建一种幻灯片.
问题:
function slides(x) {
$("#irack").stop().animate({"left": x}, 20);
};
setInterval(slides(-30),300);
Run Code Online (Sandbox Code Playgroud)
此代码仅将div向左移动1次.
为什么不每300毫秒移动div?
T.J*_*der 21
您需要将代码包装为在函数中间隔运行:
function slides(x) {
$("#irack").stop().animate({"left": x}, 20);
};
setInterval(function() {
slides(-30);
}, 300);
Run Code Online (Sandbox Code Playgroud)
你真的是说setInterval什么意思?这将持续发生,每300ms左右.如果您只想发生一次,请setTimeout改用.
更新:如果您想稍后取消该间隔,则需要将句柄保存到变量:
// Somewhere appropriate, have a variable for the handle
var handle = 0; // 0 = not running
...
// Starting:
handle = setInterval(...);
...
// Stopping:
if (handle != 0) {
clearInterval(handle);
}
handle = 0;
Run Code Online (Sandbox Code Playgroud)
注意在0未设置时使用句柄.0是一个无效的返回值setInterval,所以你可以依赖它.(您可以使用undefined或者null如果您愿意,也一定要检查它们.)
在您调用setInterval时,正在调用slide方法内联更改调用,如下所示:
setInterval(function(){slides(-30);},300);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17037 次 |
| 最近记录: |