私はドラッグウィジェットを構築しています。インタラクティブな要素から 'mouseup'/'mousedown'イベントを待ち受けます。イベントを聞かずにマウスボタンが押されていないかどうかを確認しますか?
ほとんどの場合、うまく動作しますが、私は 'mouseup'が少し信頼できないと判断しました。マウスボタンがアップ/ダウンしているかどうかを確認するイベントに依存しない方法はありますか?私はタイマーやmousemoveイベントにアタッチして、それを確実にすることができます。
私はドラッグウィジェットを構築しています。インタラクティブな要素から 'mouseup'/'mousedown'イベントを待ち受けます。イベントを聞かずにマウスボタンが押されていないかどうかを確認しますか?
ほとんどの場合、うまく動作しますが、私は 'mouseup'が少し信頼できないと判断しました。マウスボタンがアップ/ダウンしているかどうかを確認するイベントに依存しない方法はありますか?私はタイマーやmousemoveイベントにアタッチして、それを確実にすることができます。
イベントを使用する必要がありますが、イベント内からスクリプトを作成して、後でテストできるマウスの状態を割り当てることができます。
var isMouseDown = false;
document.addEventListener("mousedown", function()
{
isMouseDown = true;
});
document.addEventListener("mouseup", function()
{
isMouseDown = false;
});
if (isMouseDown == true) { ... }
イベントが独立してマウスボタンが上下しているかどうかを確認する方法はありますか?
いいえ、ありません。しかし、コードをドラッグすると、mouseup
のリスニングの最善の策は、ドラッグしている要素ではなく、ドキュメント全体です。マウスのリリースがウインドウの外にある場合でも、イベントは発生しませんが、マウスが突然動かされ、リリースが発生したときに要素の外に出るようにリリースされた場合にはあなたはなります。
また、当然のことながらたくさんを発射し、またボタンがダウン(イベントオブジェクトのプロパティbuttons
経由)であるかどうかがわかりますこれ、mousemove
のために聞くことができます。
'document'は' document.body'よりも優れていますが、これはビューポートを満たしていない可能性があります。 (そして '.onxyz = ...'ハンドラはほかの人とうまくやっていません。) –