javascript - 使用 JavaScript 在空闲时隐藏鼠标光标

标签 javascript css mousemove mouse-cursor

是否可以使用 JavaScript 将 cursor 属性设置为属性 none 如果鼠标处于非事件状态一段时间(例如,五秒)和当它再次激活时将其设置回 auto

编辑: 我意识到 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 控制台,它会完美运行。在脚本中,它似乎不起作用。

我已经发布了上面的脚本,因为这是我在让它工作方面所取得的进展。我不一定要求修复任何一个脚本;如果您知道隐藏光标的更有效方法,请分享。

最佳答案

在 CSS 2 中,none 不是 cursor property 的有效值.但是,它在 CSS 3 中有效。

否则,您可以使用从简单透明的 URI 加载的自定义游标。

不过,我认为这会极大地分散用户的注意力,因此我不建议您实际这样做。

关于javascript - 使用 JavaScript 在空闲时隐藏鼠标光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3354239/

相关文章:

javascript - ajax请求后脚本不再工作

javascript - 如果变量中有名称,如何引用 JavaScript 对象?

javascript - 如何在 worker 中处理三个网眼对象

javascript - 如何从表格(由 div 组成)中制作标题是静态的还是固定的

css - 响应式图像网格,带有 CSS 中的裁剪和居中图像

javascript - Angular(Javascript)如何控制mousemove事件的速度?

javascript - 为什么我无法通过绑定(bind)将数据获取到我的 AngularJS 组件?

html - 如何制作CSS的高级形状?

javascript - 如何在 lightspot 等英雄部分创建鼠标移动效果?

jquery - 是否可以将鼠标光标放在元素后面或鼠标光标是否具有 z-index?