Raphael 2.0.2以降、RaphaelとInternet Explorer(すべてのバージョン)で問題が発生しました。ホバー中にトランスフォーム、、、.toFront()
または.toBack()
呼び出し元をリセットするなどのパスのさまざまな操作により、hover()
ホバーインが無限にループしたり、ホバーアウトしたりする可能性があります。見逃してしまいます。
IEのマウスアウトhover
はほとんど正常に機能しますが、それがトリップして、a)説明するときにマウスアウトを無視し、b)コンソールを配置した場合にマウスオーバーイベントを再帰的にトリガーする可能性があることがいくつかあります。そこにログインすると、IE開発者ツールのコンソールが壊れて灰色になります...これにより、マウスアウトの認識も停止するように見えることがあります。
これがこれを引き起こす私が遭遇したものです:
- 変換をリセットすると、要素がマウスの下から移動し、再適用して要素をカーソルの下に戻します。非IEは何も起こらなかったように続行し、正常に動作します。IEは上記のように異常終了します。
- .toFront()および.toBack()-非IEは、移動された要素を同じXY位置にある同じ要素として認識し、IEは上記のように異常終了します。
このjsfiddleにはいくつかの観察とデモンストレーションがあります(さまざまなコメントを読んでコメントを外してください)。
ここでの適切な回避策は、たとえば'path.data(' hoverIn'、true);のようなフラグを設定することです。マウスアウト時に、または問題のある変換をチェックでon mouse in and 'path.data( 'hoverIn', false );
ラップして、マウスアウトが発生するまで1回だけ発生するようにします。または、または何かの後のどこかに最後にホバーされたパスへの参照を保存し、このパスが最後にホバーされたパスでもある場合は、保存しないでください。.toFront()
!path.data( 'hoverIn' )
toFront()
toFront()