我覺得你的代碼是持續重複。因此請在您的回調中加入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);
});
而且FYI:
$('.miniPoster').css("margin-left") //WRONG
$('.miniPoster').css("marginLeft") //CORRECT
Working JSFIDDLE
它有什麼問題? – Archer
你確實意識到,如果你想改變懸停的位置,他們將不再被盤旋在上面,對吧? –
發生了什麼?結果?你錯過了回調(clearInterval)? – Praveen