最简单的图像旋转器 - 使用设置间隔失败
Simplest of Image Rotators - Failing with SetInterval
最简单的
图像旋转器失败了,我怎样才能让它只循环穿过数组?
$(document).ready(function () {
var source = ["images/designers1.jpg","images/designers2.jpg","images/designers3.jpg"];
i=0;
setInterval(function(){
$('.dimg').attr('src',source[i++])
}, 2000);
});
这有效:
$(document).ready(function () {
var source = ["http://dummyimage.com/300x200/FFF/F00&text=GoodBye","http://dummyimage.com/300x200/000/fff&text=Hello"];
var i=0;
setInterval(function() {
$('.dimg').attr('src', source[i++ % source.length])
}, 2000);
});
工作演示:http://jsfiddle.net/jfriend00/QXyjS/
变化:
- 每个图像仅在数组中出现一次。 数组的
- 索引是数组长度的模数,因此它永远不会超过数组的长度
-
var
添加到i
变量的前面,因此它不是全局的。
我假设你想要这样的东西:
$(document).ready(function () {
var source = ["images/designers1.jpg","images/designers2.jpg","images/designers1.jpg"];
var idx = 0;
function animate(idx) {
idx++;
if (idx >= source.length)
idx = 0;
$(".dimg").attr("src", source[idx]);
setTimeout(function() {
animate(idx);
}, 2000);
}
animate(idx);
});
[编辑] setInterval
不好!使用递归setTimeout
调用来避免一些令人讨厌的陷阱。也可以找到一个工作示例。
相关文章:
- 不引人注目地设置属性后函数失败
- 如果在ASP.Net MVC视图中验证失败,请设置httppostedfilebase
- 全局变量设置在JavaScript验证中失败
- 在原型.js中设置原型值失败
- 无法设置 CKEditor 值;设置数据失败
- 三.js - 设置背景场景的纹理失败
- 未捕获的错误:断言失败:必须使用 Ember.set() 进行设置
- 最简单的图像旋转器 - 使用设置间隔失败
- jsonwebtoken.sign() 失败,并设置了 expiresIn 选项
- 在 jade 筛选器中使用区域设置选项失败
- 通过JQuery设置输入字段值会使AngularJS上所需的验证失败
- 使用obj.style.marginTop获取页边空白顶部失败,但如果首先显式设置了marginTop,则该操作有效
- Pebble.JS卡当“;动作“;被设置为-“;可滚动的“;失败
- MVC:使用javascript设置操作名称失败
- 在jQuery中为背景渐变设置-os-/-ms前缀失败
- JavaScript继承(将原型设置为内部)失败
- 设置& lt; img>用Javascript转换base64编码的图像失败
- 在3上设置顶点后.几何对象,THREE.Shape.Utils.triangulateShape失败,TypeError
- 在firefox中使用javascript设置iframe内容失败
- 通过回调设置object的成员奇怪地失败了