ツールチップが表示された後にフェードアウトするように、ツールチップを機能させようとしています。私のコードは、IE8 を除いてうまく機能します。ツールチップがフェードすると、(画像上で) mousemove イベントがトリガーされ続け、脈動効果が発生します... フェードイン/アウト/イン/アウトします。
ツールチップのコードを削除すると、マウスが移動したときにのみ mousemove イベントが呼び出されるため、問題はツールチップに関係しています。
ここで簡単な例を見ることができます:
ツールチップが表示された後にフェードアウトするように、ツールチップを機能させようとしています。私のコードは、IE8 を除いてうまく機能します。ツールチップがフェードすると、(画像上で) mousemove イベントがトリガーされ続け、脈動効果が発生します... フェードイン/アウト/イン/アウトします。
ツールチップのコードを削除すると、マウスが移動したときにのみ mousemove イベントが呼び出されるため、問題はツールチップに関係しています。
ここで簡単な例を見ることができます:
うん、修正のための私の考えはうまくいくようです:
ElementLooper.prototype = {
init: function(items, control, outer){
...
var self = this;
...
this.px = null;
this.py = null;
...
outer.mousemove(function(e) {
if (self.px == e.pageX && self.py == e.pageY) {
return;
}
self.px = e.pageX; self.py = e.pageY;
self.show_control();
});
はい、これは IE7 と IE8、jquery-1.6.2 で再現できます。
私は、fadeIn()/fadeOut() を使用して画像を切り替える画像スライドショーを作成しました。マウス カーソルがスライドショー上にある場合、画像が切り替えられると img title="..." ツールチップが表示されます。ツールチップが消えると (ブラウザーは数秒後にフェードします)、mousemove() ハンドラーが呼び出されます。
現在 (2011 年 7 月 24 日) IE7/8 でこのバグを引き起こしている例については、 http://davidhoulder.comのフロント ページを参照してください。これを修正または回避できた場合は、この回答を更新します。
考えられる修正の 1 つは、.pageX と .pageY を .mousemove() ハンドラーに保存し、マウスが実際に移動していない場合に戻ることです。