我认为您的代码不断重复。所以添加clearInterval
你的回调。
但要小心,您需要使用如下变量
var toggle;
$(".miniPosterImg").hover(function() {
toggle = setInterval(function(){
thismarginLeft = $(this).css("margin-left").replace(/[^0-9]/g,'');
if(thismarginLeft < 360){
thismarginLeft = thismarginLeft-120;
//}else{
// thismarginLeft = 0;
}
$(this).css("margin-left", thismarginLeft + "px");
},1000);},
function(){
clearInterval(toggle);
}
});
您的评论更新:
最好有一个单独的方法来处理setInterval
这样的
tToggle = function () {
thismarginLeft = $('.miniPoster').css("marginLeft").replace(/[^0-9]/g,'');
if(thismarginLeft < 360){
thismarginLeft = thismarginLeft-120;
}
$('.miniPoster').css("marginLeft", thismarginLeft + "px");
}
然后像这样使用
var toggle;
$(".miniPosterImg").hover(function () {
toggle = setInterval(tToggle, 1000);
},
function () {
clearInterval(toggle);
});
也仅供参考:
$('.miniPoster').css("margin-left") //WRONG
$('.miniPoster').css("marginLeft") //CORRECT
工作 JSFIDDLE