javascript - jQuery-ui stop() 动画导致样式粘住

标签 javascript jquery html css jquery-ui

我有一个包含 div 的无序列表。当一个悬停在上面时,其他应用了一个类,使它们略微淡出。

<ul class="three_up tiles">
    <li id="ember283" class="ember-view questioncontainer"></li>
    <li id="ember293" class="ember-view questioncontainer"></li>
    <li id="ember298" class="ember-view questioncontainer"></li>
    <li id="ember299" class="ember-view questioncontainer"></li>
    <li id="ember300" class="ember-view questioncontainer"></li>
    <li id="ember301" class="ember-view questioncontainer"></li>
    <li id="ember302" class="ember-view questioncontainer"></li>
</ul>

出现的问题是,当用户快速浏览它们时,有些人会在某个时候坚持使用它们的样式。

这里有一个 fiddle :http://jsfiddle.net/QusWU/1/

我的解决方案应该是什么?

最佳答案

问题是,当您使用带有动画效果的 .addClass 版本时,它不会在动画完成之前将类添加到元素中。如果未添加该类,则调用 removeClass 不会执行任何操作。

正如@ArunPJohny 指出的那样,您可以使用.stop(true, true) 将动画跳到最后,这样类就会被添加。但是,这有其自身的问题,因为您不想要视觉效果。

也许您不应该使用类而只是设置不透明度的动画。这样动画中途停止倒退就好了。

var $containers = $(".questioncontainer");

$containers.mouseenter(function () {
    var $container = $(this);
    $container.stop().animate({ opacity: 1.0 }, 500);
    $container.siblings().stop().animate({ opacity: 0.2 }, 500);
});

$containers.mouseleave(function () {
    $containers.stop().animate({ opacity: 1.0 }, 500);
});

jsfiddle

关于javascript - jQuery-ui stop() 动画导致样式粘住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21447255/

相关文章:

jquery - 如何将JQuery函数应用于除某些元素之外的所有元素?

jquery - 在jquery中的所有src标签上添加value属性

javascript - 如何在 KendoGrid 内联编辑模式下覆盖默认更新事件

javascript - Expo/RN - 获取人脸特征点

javascript - 多列 HTML 列表框

javascript - 使用 JavaScript 如何将 1524801600000 转换为新日期 (YYYY,MM,DD)

javascript - 如果不存在,Angular JS 默认创建段落

html - 如何将一个图像叠加在另一个图像上?

javascript - 每行开头和结尾的填充相同

javascript - jQuery 中的 jQuery 函数均未按预期工作