divのどちら側からマウスカーソルが来たかを検出する方法はありますか?
現在、私はこの方法を使用しています:
jQuery(this).bind('mousemove',function(e){
offset_pos_x = parseInt(e.offsetX);
offset_pos_y = parseInt(e.offsetY);
...
次に、マウスがdiv内をどの方向に移動したかを調べます。
問題は、この方法は少しバグが多いことです。これは、2つだけでなく、4つの側面すべてが必要なため、offsetXとoffsetYをチェックする必要があるためです。
たとえばX:+ 15、Y:-3(ピクセル単位)のようにマウスをdiv内に移動すると、マウスはx軸で15ピクセル移動しましたが、y軸では-3ピクセルしか移動しなかったため、マウスは左から移動したことがわかります。 。これに関するバグのあることは、XとYがほぼ同じで、マウスが左から来たのか上から来たのかわからない場合です(たとえば)。
また、私の他の質問(jQuery:mouseenter / mousemove / mouseoverは小さなdivと速いマウスの動きでは認識されません)によると、ブラウザー/ OSの制限により、イベントはdiv側の最初のピクセルで発生しません。そのため、私の「entered_at」座標はそれほど正確ではありません-例:
マウスカーソルをdiv内(左から)で非常に速く動かすと、「entered_at」座標はたとえばx:17、y:76になります。ここで、マウスを停止した後、たとえばx:6、y:76にマウスを左に移動すると、開始点とoffsetXの差が負になるため、「カーソルが右から来ました」関数がトリガーされます。
マウスカーソルが来た側を検出する別の方法はありますか?
あいさつ、パトリック