2012-06-07 3 views
0

Как я могу сделать hover() работать непрерывно? Я бы хотел, чтобы при мышке над #up_btn свойство top продолжает анимировать. Сейчас он работает только один раз.Анимация при зависании

$(document).ready(function(){ 
    $("#up_btn").hover(function(){ 
     var new_num = parseInt($("#move_box").css("top")); 
     $("#move_box").css("top", new_num + 1); 
    }) 
}) 
+0

необходимо добавить в HTML свою рассылку. – root

+2

ProTip ™: вам не нужно использовать 'parseInt' на' top' с jQuery. Просто сделайте '.css ('top', '+ = 1')'! – Ryan

+0

@minitech Не знал, что очень полезно. –

ответ

0
$(document).ready(function() { 
    $("#up_btn").mouseenter(function() { 
     var new_num = parseInt($("#move_box").css("top")); 
     $("#move_box").css("top", new_num + 1); 
    }) 
}) 
+0

спасибо, но это только запускается раз ... возможно, это не работает ... но спасибо вам все равно – RogerWu

2

Вы можете использовать setInterval, чтобы сделать ваш код запуска несколько раз, а затем использовать clearInterval остановить анимацию:

$(document).ready(function() { 
    var timer; 

    $("#up_btn").hover(function() { 
     timer = setInterval(function() { 
      $("#move_box").css('top', '+= 1'); 
     }, 100); // Change the interval as you see fit. 
    }, function() { 
     clearInterval(timer); 
    }); 
}); 
+0

спасибо, теперь это работа. – RogerWu

+0

еще один вопрос: разве идея не использовать событие для прослушивания наведения и позволить ему всегда работать? – RogerWu

+0

@RogerWu: Извините, я не совсем понимаю, что вы подразумеваете под «всегда работать». Не могли бы вы перефразировать? – Ryan

1

Использование setInterval или setTimeout. Например:

var move_box_interval; 
$(document).ready(function() { 
    $("#up_btn").hover(function() { 
     // Change the interval to be appropriate. It's in milliseconds. 
     move_box_interval = setInterval(move_box, 100); 
    }); 

    // Change this to the appropriate trigger. 
    $("#up_btn").mouseout(function() { 
     clearInterval(move_box_interval); 
    }); 
}); 

function move_box() { 
    $("#move_box").css("top", "+= 1"); 
} 
+0

спасибо ~ это тоже работа ~ – RogerWu

Смежные вопросы