1

ツールチップが表示された後にフェードアウトするように、ツールチップを機能させようとしています。私のコードは、IE8 を除いてうまく機能します。ツールチップがフェードすると、(画像上で) mousemove イベントがトリガーされ続け、脈動効果が発生します... フェードイン/アウト/イン/アウトします。

ツールチップのコードを削除すると、マウスが移動したときにのみ mousemove イベントが呼び出されるため、問題はツールチップに関係しています。

ここで簡単な例を見ることができます:

クリックして簡単な例を表示 (IE8 を使用)

4

2 に答える 2

2

うん、修正のための私の考えはうまくいくようです:

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();
                });
于 2011-07-25T01:42:29.907 に答える
1

はい、これは IE7 と IE8、jquery-1.6.2 で再現できます。

私は、fadeIn()/fadeOut() を使用して画像を切り替える画像スライドショーを作成しました。マウス カーソルがスライドショー上にある場合、画像が切り替えられると img title="..." ツールチップが表示されます。ツールチップが消えると (ブラウザーは数秒後にフェードします)、mousemove() ハンドラーが呼び出されます。

現在 (2011 年 7 月 24 日) IE7/8 でこのバグを引き起こしている例については、 http://davidhoulder.comのフロント ページを参照してください。これを修正または回避できた場合は、この回答を更新します。

考えられる修正の 1 つは、.pageX と .pageY を .mousemove() ハンドラーに保存し、マウスが実際に移動していない場合に戻ることです。

于 2011-07-24T03:36:57.897 に答える