如果鼠标未活动一段时间(比如5秒钟),是否有可能使用JavaScript将cursor
属性设置为none
,并在鼠标重新活动时将其设置回auto
?
编辑:我意识到none
不是cursor
属性的有效值。尽管如此,许多Web浏览器似乎仍然支持它。此外,主要用户是我自己,因此几乎不会出现混淆的可能性。
我有两个可以实现类似功能的脚本:
window.addEventListener("mousemove",
function(){
document.querySelector("#editor").style.background = "#000";
setTimeout("document.querySelector('#editor').style.background = '#fff'", 5000);
}
, true);
和
var timeout;
var isHidden = false;
document.addEventListener("mousemove", magicMouse);
function magicMouse() {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function() {
if (!isHidden) {
document.querySelector("body").style.cursor = "none";
document.querySelector("#editor").style.background = "#fff";
isHidden = true;
}
}, 5000);
if (isHidden) {
document.querySelector("body").style.cursor = "auto";
document.querySelector("#editor").style.background = "#000";
isHidden = false;
}
};
每个脚本都能实现当鼠标闲置超过五秒钟时背景色变为白色,当移动光标时背景色变黑。然而,它们无法让光标消失。令我惊讶的是,如果我在JavaScript控制台中输入命令 document.querySelector("body").style.cursor = "none";
它可以完美地工作。但在脚本内部似乎不起作用。我已经发布了上述脚本,这是我在使其正常工作的过程中所到达的最远阶段。我并不一定要求修复这些脚本;如果您知道一个更有效的方法来隐藏光标,请分享。
none
现在是CSS3cursor
属性的有效值。 - Kos