jqueryとCSSを使用して、マウスをそれぞれに合わせたときに選択されるボタンを示すために使用しているナビゲーションサイドバーのボタンをアニメーション化しようとしています。
現在、CSSの私のコードは次のように表示されます。
#navbutton {position:relative; width:178px; height:35px; border:1px #FFF solid; z-index:+3; font-family:'Capriola', sans-serif; font-size:18px; text-align:center;}
#navbutton.button {color:#77D; background-color: #F0B0D0;}
#navbutton.button_hover {color:#66C; background-color: #FCF; padding:10px;}
そして私のjquery:
<script type="text/javascript">
$(document).ready(function(){
$("#sidebar div").mouseenter(buttonHover)
function buttonHover(){
$(this).stop().switchClass('button','button_hover',500);
}
$("#sidebar div").mouseleave(button)
function button(){
$(this).stop().switchClass('button_hover','button',500);
}
});
</script>
アニメーションの各部分に.stop()を追加する前は、マウスを各ボタンの上に移動してから削除するたびに、アニメーションキューがスタックしていました。.stop()が適用されたので、アニメーション中にマウスをボタンから離すと、ボタンがフリーズしてアニメーションの途中の状態のままになり、ページにカーソルを合わせると修正できなくなります。元のマウスリーブ状態に戻るのではなく、リロードされます。
私が読んだすべてのことから、これは当てはまらないはずです。.stop()が適用されると、アニメーションキューが壊れてしまう理由を誰かが知ることができるでしょうか?