jquery - 为什么我无法在不破坏代码的情况下阻止动画队列堆叠?

标签 jquery css animation queue

我正在尝试使用 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() ,但是,如果鼠标在动画期间从按钮上移开,该按钮将卡住并保持在其动画中间状态,无法通过将鼠标悬停在页面上来修复重新加载,而不是恢复到其原始的 mouseleave 状态。

从我读过的所有内容来看,情况不应该如此。谁能说出为什么在应用 .stop() 后我的动画队列会被破坏?

最佳答案

使用.stop(true,true)让它走到当前动画的末尾,否则它会在原处停止。

http://api.jquery.com/stop/

关于jquery - 为什么我无法在不破坏代码的情况下阻止动画队列堆叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784709/

相关文章:

Android TextView动画,一个字一个字

css - 如何使用 CSS 制作 3D 按钮?

html - 我想显示用户使用 css 选择的文件的文本

javascript - 我无法将 html 表格导出为 Excel xls 格式

javascript - 每个循环中的单击事件都会触发多次

html - 如何将水平滚动条添加到具有垂直滚动条的父 div 的内部 div?

jquery - 通过 jQuery 激活 CSS 动画?

animation - 他们是怎么做到的?按键文字动画

javascript - 检查文本字段是否仅包含数字且必须为 11 位数字

javascript - 如何将下一个上一个按钮添加到 js jQuery slider ?