我想在最后一张图片停止后从头开始重新启动动画。我尝试了下面的代码,但它不会返回到第一张图片。
$(document).ready(function () {
window.setInterval("slideshow()", 3000);
});
function slideshow() {
var time = window.setInterval("slideshow()", 3000);
next = $(".next");
inside = parseInt($(".inside").css("left"));
if (inside == -3080) {
window.clearInterval(time);
inside == 0;
}
else {
next.trigger("click");
}
}
答案 0 :(得分:0)
在你的循环结束时你可以这样做:
$(".path0 a").click();
然后这将返回到第一张图像。所以它可能会成为:
$(document).ready(function(){ window.setInterval(“slideshow()”,3000); });
function slideshow(){
var time = window.setInterval("slideshow()", 3000);
next= $(".next");
inside = parseInt($(".inside").css("left"));
if (inside==-3080)
{
window.clearInterval(time);
$(".path0 a").click();
}
else {next.trigger("click");}
};
我希望这会有所帮助: - )
答案 1 :(得分:0)
仅查看代码,至少有三个问题:
var
关键字,这是一个很大的错误,inside==0
),==
代替===
(这是一种不好的做法,除非你真的知道自己在做什么,===
不符合你的需要),您的代码可能如下所示:
$(document).ready(function() {
slideshow(); // execute once and start interval
});
function slideshow(){
var time = window.setInterval("slideshow()", 3000);
var next = $(".next");
var inside = parseInt($(".inside").css("left"));
if (inside === -3080){
window.clearInterval(time);
inside = 0;
} else {
next.trigger("click");
};
};
(确保inside === -3080
比较不那么严格,因为只有一个像素的错误意味着间隔不会被清除 - 我认为inside <= -3080
会更好)
我没有测试它,我刚刚解决了一些明显的问题。
修改强>
我刚刚发现你在每个间隔内开始新的间隔。不要做。在回调之外声明time
,然后在回调中检查是否已设置,然后采取适当的措施。