マウスが一定時間(たとえば5秒間)非アクティブになっている場合、JavaScriptを使用してcursor
属性をプロパティに設定し、再びアクティブになったときに元に戻すことはできますか?none
auto
編集:私はそれがプロパティnone
の有効な値ではないことを認識していcursor
ます。それにもかかわらず、多くのWebブラウザがそれをサポートしているようです。さらに、これの主なユーザーは私自身であるため、結果として混乱が生じる可能性はほとんどありません。
同様のことを実行できる2つのスクリプトがあります。
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;
}
};
これらのそれぞれで、マウスが5秒以上非アクティブになると、背景色が白に変わり、カーソルを動かすと背景が黒に変わります。ただし、カーソルを非表示にするためには機能しません。私が驚いたのは、コマンドdocument.querySelector("body").style.cursor = "none";
をJavaScriptコンソールに入れると、完全に機能することです。スクリプト内では、機能していないようです。
これが機能するようになった限り、上記のスクリプトを投稿しました。どちらのスクリプトの修正も必ずしも求めているわけではありません。カーソルを非表示にするより効率的な方法を知っている場合は、共有してください。