5

ユーザーが画像をページにドラッグし、以前にドラッグした画像内に他の画像をドラッグできるビジュアルエディターを実装しています(「別の画像を追加」のようなものです)。

基本的に、ドラッグ中のマウス座標のみが必要です。要素のハイライトなど...これらの座標に基づいてカスタム関数を使用します。

問題は、Webkit ではevent.clientXとでそれらを取得できますがevent.clientY、Firefox (v.16.0.1 OSX) ではそれらの「対応物」pageXでありpageY、ドラッグ中の私の経験では常にゼロです。

ただし、 の間はゼロではありませんmouseMove

私は賢いので、私はやった

$(document).on("mouseMove",function(e){__PX=e.pageX,__PY=e.pageY});

常に最新のものを持っているpageXので、ハンドラーpageY内でそれらを使用できますが...onDrag

ドラッグアンドドロップ操作中には起動しOnMouseMoveません:( :(

DnD 中にマウス X と Y を取得する方法はありますか? Firefox ではなく、さまざまなプラットフォームで既に動作するため、コードをあまり乱雑にしないでください。

4

1 に答える 1

8

ここで答えを見つけました。

私はそれを次のように解決しました:

(___NODRAGEVENT = $.browser.mozilla) && $(document).on("dragover", function(e) {
    e = e.originalEvent;
    ___PAGEX = e.clientX || e.pageX;
    ___PAGEY = e.clientY || e.pageY;
});

とが含まれていることに本当に驚いて混乱してonDragOverいます。なぜ彼らはドラッグイベントでそれらを投入しないのですか?clientXclientY

于 2012-10-28T16:16:44.903 に答える