答案 0 :(得分: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>
可能会使其他页面元素阻止您的事件(尽管不太可能发生鼠标事件)。
答案 1 :(得分:0)
答案 2 :(得分: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);
}
}
});