Я использую функцию animate jQuery для перемещения вверх и вниз по div внутри другого div.
$(document).ready(function() {
$(".box2text").hover(
//on mouseover
function() {
$(this).animate({
height: '+=130' //adds 250px
}, 'slow' //sets animation speed to slow
);
},
//on mouseout
function() {
$(this).animate({
height: '-=130px' //substracts 250px
}, 'slow'
);
}
);
});
Я хотел бы сделать это, отключить функцию в течение X секунд после первого запуска, а затем снова включить ее. Любые идеи о том, как это сделать?
Я предлагаю вам использовать метод mouseenter и mouseleave.
Здесь вы можете попробовать сами: DEMO.
Рассмотрим этот пример: когда мышь вводит запуск таймаута (выполняется один раз в раз): после 2000 мс оживить мяч.
var animateBall = function() {
$('#ball').animate({
left: "300px"
}, 200). animate({
left: "0px"
}, 200);
}
$("button").mouseenter(function(){
setTimeout(function() {
animateBall();
},2000);
}).mouseleave(function(){
/* do something else */
});
Следующий код будет выполнять метод myFunction()
каждые 5 sec
после загрузки DOM. Вы можете вызвать ту же функцию, когда захотите, например, hover, onclick, mouseenter
т.д....
Попробуйте реализовать свою логику внутри моего кода.
var enable = true ;
var timer ;
$(document).ready(function() {
myFunction();
timer = setInterval(function(){myFunction();},5000)
});
function myFunction(){
if(enable == true ){
//do your stuff
enable = false;
}else{
//do your stuff
enable = true;
}
}
Также вы можете остановить выполнение,
clearInterval(timer);
Пожалуйста, дайте мне знать, если вам нужна помощь. Спасибо.