我的要求是每隔几秒钟,我的div标记就会向左滑动(左边空白)。
我认为代码是自我解释的。
有什么东西我遗漏了吗?
是因为有很多if语句吗?
或者有更简单、更智能的功能吗?
setInterval(function(){
if ($(".carousel").css("margin-left")!='0%'){
$(".carousel").css("margin-left", "-100%");
}
if ($(".carousel").css("margin-left")!='-100%'){
$(".carousel").css("margin-left", "-200%");
}
if ($(".carousel").css("margin-left")!='-200%'){
$(".carousel").css("margin-left", "-300%");
}
if ($(".carousel").css("margin-left")!='-300%'){
$(".carousel").css("margin-left", "-400%");
}
if ($(".carousel").css("margin-left")!='-400%'){
$(".carousel").css("margin-left", "-500%");
}
if ($(".carousel").css("margin-left")!='-500%'){
$(".carousel").css("margin-left", "-600%");
}
if ($(".carousel").css("margin-left")!='-600%'){
$(".carousel").css("margin-left", "-700%");
}
if ($(".carousel").css("margin-left")!='-700%'){
$(".carousel").css("margin-left", "0%");
}
}, 2000);
我怀疑您使用的是!=
而不是预期的==
。
此外,如果进行此更改,则必须正确地链接if
语句才能使用else if
,否则,从0%
更改为-100%
将触发-100%
到-200%
的if语句,依此类推
另一方面,一个更简单的函数可能是:
这是由于下面的评论线程而更新的
function setCarouselMargin(marginLeft) {
$('.carousel').css('margin-left', marginLeft + '%');
marginLeft -= 100;
if (marginLeft < -700) {
marginLeft = 0;
}
setTimeout(function () { setCarouselMargin(marginLeft) }, 2000);
}
$(function() {
setCarouselMargin(0);
});