2017-01-21 3 views
1

IE 9以上で互換性が必要なアプリケーションを開発しています。 MouseEventオブジェクトでmovementXプロパティを使用していますが、このMouseEventオブジェクトにはInternet Explorer(9または11)のmovementXプロパティはありません。MouseEventのmoveXプロパティがInternet Explorerでサポートされていないようです。

私はMicrosoftのドキュメントを参照し、実際にはMouseEventオブジェクトでこのプロパティをサポートすると主張しています。私はこれが実際にMouseEventオブジェクトであることを確認しており、単にそのプロパティを持っていません。他のすべてのプロパティは、このプロパティを除いて使用可能であるように見えます。

誰でもこの問題を経験しましたか?大規模なインターネットはこれでかなり静かに見えます。

+0

http://www.bing.com/search?q=mouseevent+movementxを参照してください。おそらくあなたはMSDNとして誤読されたMSNを持っていますか? devツールコンソールにMouseEvent.prototypeと入力すると、メンバーがリストされます。 –

+0

お詫び申し上げます...このMSDNの参考情報:https://msdn.microsoft.com/en-us/library/ff974344(v=vs.85).aspx says最後に表示されてから水平位置の差を(screenX単位で)返します。 mousemove(またはpointermove)イベント。 –

+0

この問題を解決しましたか?私は同じ問題を抱えています。 IE11のMouseEventのmoveXとmovementYがちょうど上に消えてしまったようです。私はプロジェクトを、これらのプロパティを使用してIE11で動作していたバージョンに戻しましたが、それはもはや機能しません。 –

答えて

1

次のscreenXscreenYの間のデルタを取って、その動作を複製する必要があります。

// Store previous screenX/screenY somewhere outside of callback 
var prevX = 0; 
var prevY = 0; 

// Callback whenever the mouse moves 
function mousemove(e) { 
    var movementX = (prevX ? e.screenX - prevX : 0) 
    var movementY = (prevY ? e.screenY - prevY : 0) 

    prevX = e.screenX; 
    prevY = e.screenY; 
} 

あなたは何かがドラッグされているかどうかを把握、と言ってmousemoveを聞いている場合、あなたはmouseupに0からprevXprevYをリセットする必要がありますか、他古いスクリーン値を取得しますことに注意してください!

関連する問題