2009-10-14 3 views
8

У меня есть div под названием «#top». Я бы хотел, чтобы он исчез, когда мышь простоя в течение 3 секунд. Когда мышь снова перемещается, сделайте ее видимой (исчезает, конечно)JQuery: как заставить что-то исчезать, когда мышь простаивает. Когда мышь снова движется, она исчезает!

Кто-нибудь знает, как это сделать?

Большое спасибо.

ответ

21

Использование setTimeout, сохранение возвращаемого значения где-то (отменить его clearTimeout при перемещении мыши снова):

var timer; 
$(document).mousemove(function() { 
    if (timer) { 
     clearTimeout(timer); 
     timer = 0; 
    } 

    $('#top:visible').fadeIn(); 
    timer = setTimeout(function() { 
     $('#top').fadeOut() 
    }, 3000) 
}) 

Вы хотите, чтобы это внутри $(document).ready() или тому подобное.

+0

+1 hehe nice solution ^^ – bastianneu

+0

Для меня это похоже на работу, но она не исчезает, и элемент не появляется снова при перемещении мыши. – rpivovar

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