1

私のコード

私はあなたがそれにカーソルを合わせると異なるブラウザを表示し、それらがサポートされている場合はcssで行われるdivを持っています。ただし、私が作業しているjqueryを使用してアニメーション化することも望んでいました。

ただし、マウスをホバー領域の上にすばやく移動してからホバーすると、そのアニメーションは再トリガーされません。マウスをかなり遠くに動かしてから、その上にカーソルを合わせる必要があります。私が見つけたこの問題を再現する最良の方法は、マウスをその上に置き、すばやくカーソルを合わせて数回外に出すことです。

その理由は、cssがマウスを非表示にして、そうではないと言っていても、jqueryがまだマウスが終了したと見なしているためだと思います。また、マウスを遠くに動かす必要があるのは、距離ではなく時間に関係していると思いますが、やはりわかりません。また、.mouseover()、. hover()、および.mouseenter()を試しましたが、.mouseenter()が最適に動作しているようです。

これは疑わしい動作ですか?正確には「壊れる」わけではありませんが、この効果を機能させたいと思います。これが予想される動作である場合、css3アニメーションでエフェクトを希望どおりにコピーできる可能性がありますか?

また、補足として、フィドルを表示した場合、追加することを検討する必要がある他のブラウザーはありますか?(個人的な見方は大丈夫ですが、ブラウザがこっそり人気を博している場合はもっと多くなります)

4

2 に答える 2

2

stop()を追加することでこれを解決できます

$(this).stop().animate({'width':'25px'},500);

詳細はこちら:http ://api.jquery.com/stop/

于 2012-06-17T14:16:30.757 に答える
0

最後のアニメーションを止めていなければ、それはかなり頻繁に起こると思います。このようにすれば、その問題を解決できると思います。

 $(this).stop().animate( /*your animation*/ );

アニメーションだけでなく、すべての要素をチェックする必要がある場合もあります。これは、Enterキーを押すだけでJavaScriptの検証を停止したユーザーに問題があったことを覚えているためです(VTigerで作業していたとき)。

このリンクには、それに関するいくつかの情報がありますhttp://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

結論として、midori、maxthon、およびkonquerorなどのLinuxで使用されている他のブラウザのような未知のブラウザがたくさんあると思います。

于 2012-06-17T14:34:51.047 に答える