8

カーソルを変更するhtml要素をマウスで押し続けています。これで、マウスボタンが押されたままユーザーがキーを押すと、要素に別のカーソルが割り当てられます。これは、カーソルをすぐに変更するMozillaでは完全に正常に機能しますが、Chromeでは機能しません。Chromeでは、新しいカーソルを表示するには、カーソルを少なくとも1ピクセル移動する必要があります。これは、マウスボタンが押されたときにのみ発生することに注意してください。そうでない場合、カーソルは必要に応じてすぐに切り替わります。それを適切に修正する方法はありますか?

更新:これはWebKitのバグのようです: https ://bugs.webkit.org/show_bug.cgi?id = 53341

しかしとにかく、まだ修正がないので、それをまだ機能させるためのアイデアはありますか?

誤動作のサンプルは次のとおりです。次のコードを使用したJSFiddleサンプル:

html:

<div id="test1" style="background:blue;width:200px;height:200px;color:white">Case #1 -   cursor not changing for mousedown before moving it (Press mouse - nothing happens. Then hold mouse and move)</div>

<div id="test2" style="background:red;width:200px;height:200px;color:white">Case #2 - cursor not changing for mousedown before moving it when pressing a key (Press mouse, then click any key - Nothing happens. Then hold mouse and move)</div>

js:

var el1 = document.getElementById("test1");
var el2 = document.getElementById("test2");

el1.addEventListener("mousedown", function() {
    el1.style.cursor = "move";
});

document.addEventListener("keydown", function() {
    el2.style.cursor = "move";
});
4

1 に答える 1

1

これは、マウスを動かさなくてもクロムで機能しています:

var el1 = document.getElementById("test1");
var el2 = document.getElementById("test2");

el1.addEventListener("mousedown", function() {
    el1.className += ' cursormove';  
});
document.addEventListener("keydown", function() {
    el1.style.cursor = "pointer";
});


.cursormove {cursor:move;}

http://jsfiddle.net/ntdap5hf/4/

それとも何かが恋しいですか?

于 2016-12-30T12:50:20.933 に答える