Firefox の drag, dragend イベントは clientX, clientY の値が0になる
はじめに
ドラッグ&ドロップを利用し、JavaScriptでとある機能を実装しているときに、clientX
, clientY
の値がブラウザ毎に変わるので調査しました。
環境
firefox: 61.0.1 (64-bit)
問題
ここのサイトの下の方のdemo
以下のdragイベントの'event'の中身を見ると
document.addEventListener("drag", function( event ) {
clientX, clientYの値が0になっている。
他のブラウザ
chromeだとちゃんとclientX, clientYが取得できる。
対応状況
ここを見ると9年前から話題になっている。
解決案
jQuery UI draggable eventを使う
ここのjsfiddleでdraggableのdragイベントを見る
drag event で取得した中身のoriginalEventにはclientX, clientYがfirefoxでも入ってる!!!
だけどdrag eventを、mousemove eventで補っているっぽい
参考
- 505521 - Set screen coordinates during HTML5 drag event, 入手先 https://bugzilla.mozilla.org/show_bug.cgi?id=505521
- Draggable | jQuery UI, 入手先 https://jqueryui.com/draggable/