如果JQuery没有移动,它会隐藏鼠标

我试图隐藏鼠标,如果它没有移动一段时间。

这是我正在使用的代码:

$(document).ready(function() { var j; $(document).mousemove(function() { clearTimeout(j); $('html').css({cursor: 'default'}); j = setTimeout('hide();', 1000); }); }); function hide() { $('html').css({cursor: 'none'}); } 

调用hide()函数时,光标会被隐藏,但稍后会在一瞬间取消隐藏。 任何帮助表示赞赏。

您最初的问题是隐藏鼠标会触发鼠标移动,从而立即将其重置为默认值。 所以你可以这样解决……

 var justHidden = false; $(document).ready(function() { var j; $(document).mousemove(function() { if (!justHidden) { justHidden = false; console.log('move'); clearTimeout(j); $('html').css({cursor: 'default'}); j = setTimeout('hide();', 1000); } }); }); function hide() { $('html').css({cursor: 'none'}); justHidden = true; }​ 

… … BUUUUUT

你在这里遇到一个问题,此刻对我来说似乎无法解决。 也就是说,隐藏的鼠标永远不会触发鼠标移动,所以一旦它隐藏起来,就我所知,你将无法取消隐藏它。

我会继续调查,看看是否有一个我缺少的解决方案。