Заставить исчезнуть через Х секунд, если нет движения? Jquery / Ipad - PullRequest
2 голосов
/ 20 июля 2010

Я знаю, какой код использовать, чтобы заставить что-то подождать X секунд, прежде чем исчезнуть ...

$('div#extras').delay(800).fadeOut(3000); 

Но это для ipad, и я хотел бы, чтобы он исчезал, только если у пользователя естьне двигался и не трогал что-либо в течение примерно 2 секунд или около того.

Я не могу точно использовать onmousemove с этим .. Любые идеи?

Для всех, кто интересуется .. То, что я сделал, было использовать:

        //If user touches page, show menu
        $('.touch').bind( "touchstart", function(e){
            $('div#extras').stop().fadeTo('fast', 1);
        });
        //If user moves page, show menu
        $('.touch').bind( "touchmove", function(e){
            $('div#extras').stop().fadeTo('fast', 1);
        });
        //If user does not touch or move page, fade menu
        $('.touch').bind( "touchend", function(e){
            $('div#extras').delay(2000).fadeTo(1500, 0);
        });

Спасибо за вашу помощь

Ответы [ 2 ]

4 голосов
/ 20 июля 2010
(function(){
   var timerId = null;    

   $(document).bind('mousemove mousedown mouseup', function(){
       $('div#extras').show();

       clearTimeout(timerId);

       timerId = setTimeout(function(){
           $('div#extras').fadeOut('slow');
       }, 2000);
   });
}());
0 голосов
/ 20 июля 2010

вы можете регистрировать время каждый раз, когда пользователь что-то трогает, и проверять это с помощью setTimeout (). Если прошло более 2 секунд, вы запускаете скрытый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...