2011-10-22 63 views

回答

1

jQuery throttle/debounce是安全地做這樣的事情一個很好的插件。 jsFiddle

$('html').mousemove($.debounce(250, true, function(e){ 
     $('header').animate({ top: '0' }, 300) 
    })) 
    .mousemove($.debounce(5000, false, function(e){ 
     $('header').animate({ top: '-60px' }, 300) 
    })); 

PS:請記住,以這種方式連接到<html>可以得到阻止其他網頁元素的事件(雖然不太可能mouseMove事件)。

0

試試這個

http://jsfiddle.net/lastrose/BEzbw/3/

可能需要上雖然

+0

這與我所需要的很接近,但即使您在頁面上移動鼠標,標題也會反彈。只有當鼠標停止移動時,標題才能向上滑動。 – floatleft

0

像這樣的時機工作?

$(document).ready(function() { 

    $('header').css('top', '-60px'); 
    $('html').mousemove(function(event) { 
     $('header').animate({ top: '0' }, 300); 
    }); 

    //Increment the idle time counter every second. 
    idleTime = 0; 
    var idleInterval = setInterval("timerIncrement()", 6000); 

    //Zero the idle timer on mouse movement. 
    $(this).mousemove(function (e) { 
     idleTime = 0; 
    }); 
    $(this).keypress(function (e) { 
     idleTime = 0; 
    }); 

    function timerIncrement() { 
     idleTime = idleTime + 1; 
     if (idleTime > 4) { // 5sec 
      $('header').animate({ top: '-60px' }, 300); 
     } 
    } 

}); 
+0

這非常接近,但上升似乎並沒有發射。這裏是上面的代碼運行:http://jsfiddle.net/FAtUw/ – floatleft