Прерывание delay()
$('#div').fadeIn('fast').delay(5000).fadeOut('fast')
Этот код показывает какой-то див, и через 5 сек скрывает его. как остановить delay() ? Делаю примерно так:
$('#div').stop(true, true).fadeOut('fast').fadeIn('fast')
Но всt все равно считает, и исчезает |
1) вместо delay можно использовать setTimeout для задержки
и clearTimeout для прерывания ожидания что то вроде
var waiter;
// fadeIn отработает и вызовет безымянную функцию
$('#div').fadeIn('fast', function(){
// создаём таймер и запоминаем ссылку на него
waiter=setTimeout(function(){
// когда таймер отработает будут запущен fadeOut
$('#div').fadeOut('fast');
},5000);
})
// пример остановки таймера
// щелчок по killer унечтожит таймер и обьект не исчезнет
$('#killer').click(function(){
clearTimeout(waiter);
});
2) для delay попробуй ещё связку из двух методов.
$("#div").clearQueue(); // унечтожаем очередь
$("#div").stop(); // останавливаем текущую анимацию
|
| Часовой пояс GMT +3, время: 23:57. |