如果鼠标在一段时间内不活动(例如5秒),并且将其设置回auto
,是否可以使用JavaScript将cursor
属性设置为属性none
它又变得活跃了?空闲时使用JavaScript隐藏鼠标光标
编辑:我知道none
是不是cursor
属性的有效值。尽管如此,许多网页浏览器似乎都支持它。此外,主要用户是我自己,所以出现混淆的可能性很小。
我有两个脚本,可以做同样的事情:
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;
}
};
对于每一项,当鼠标处于非活动状态超过五秒钟背景色变白色,当光标移动时,背景变黑。但是,它们不能使光标消失。令我惊讶的是,如果我把命令document.querySelector("body").style.cursor = "none";
加入到JavaScript控制台中,它可以很好地工作。在脚本内部,它似乎不起作用。
我已经发布了上面的脚本,因为这是我进来得到这个工作。我不一定要求解决任何一个脚本;如果你知道更有效的隐藏光标的方式,请分享。
+1这不是真正好用户体验用户混淆这样的事情。 – peol 2010-07-28 15:41:40
如果在播放某些媒体或者不想使用鼠标进行交互,我可以看到这样做的一些价值 – hunter 2010-12-22 20:36:27
即使某些东西不打算与鼠标互动,还有什么替代方法?触摸?钢笔?无论如何,它们都会隐藏正常的鼠标指针,并且只要您知道所点击的位置就会将其替换为淡化的内容。对于媒体播放器来说,这可能是有争议的,但我猜想只要浏览器将增加视频的全屏功能,这也不会成为问题。通常有*非常少的*有效的理由永远隐藏鼠标指针,特别是如果它只是屏幕的一部分(比如说,你的网页或者它的一个元素)。 – Joey 2010-12-23 21:41:44