Javascript jQuery ui stop()动画导致样式粘滞

Javascript jQuery ui stop()动画导致样式粘滞,javascript,jquery,html,css,jquery-ui,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="

我有一个无序的列表,里面有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>
出现的问题是,当用户快速浏览它们时,有些人会在某一点上坚持使用它们的样式

这里有一把小提琴:

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

使用以“完成”值结束当前动画,否则动画属性将保留与该时刻相同的值

查看的
jumpToEnd
参数

演示:

使用,以便当前动画以“完成”值结束,否则动画属性将保留与该时刻相同的值

查看的
jumpToEnd
参数

演示:

使用,以便当前动画以“完成”值结束,否则动画属性将保留与该时刻相同的值

查看的
jumpToEnd
参数

演示:

使用,以便当前动画以“完成”值结束,否则动画属性将保留与该时刻相同的值

查看的
jumpToEnd
参数

演示:

尝试以下操作:在Jquery中使用
hover()
,在添加和删除类时使用
ToggleClass

$(".questioncontainer").hover(function() {
    $(this).siblings().toggleClass("nofocus");
});
尝试以下操作:在Jquery中使用
hover()
,在添加和删除类时使用
ToggleClass

$(".questioncontainer").hover(function() {
    $(this).siblings().toggleClass("nofocus");
});
尝试以下操作:在Jquery中使用
hover()
,在添加和删除类时使用
ToggleClass

$(".questioncontainer").hover(function() {
    $(this).siblings().toggleClass("nofocus");
});
尝试以下操作:在Jquery中使用
hover()
,在添加和删除类时使用
ToggleClass

$(".questioncontainer").hover(function() {
    $(this).siblings().toggleClass("nofocus");
});

问题是,当您使用制作动画的
.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);
});

问题在于,当您使用制作动画的
.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);
});

问题在于,当您使用制作动画的
.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);
});

问题在于,当您使用制作动画的
.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);
});

首先,谢谢。好吧,我后来真的试过了,我应该提到的。注意其他元素是如何闪烁的,或者说是希望?我真的想避免这样。你还有什么建议吗?首先,谢谢你。好吧,我后来真的试过了,我应该提到的。注意其他元素是如何闪烁的,或者说是希望?我真的想避免这样。你还有什么建议吗?首先,谢谢你。好吧,我后来真的试过了,我应该提到的。注意其他元素是如何闪烁的,或者说是希望?我真的想避免这样。你还有什么建议吗?首先,谢谢你。好吧,我后来真的试过了,我应该提到的。注意其他元素是如何闪烁的,或者说是希望?我真的想避免这样。你还有什么建议吗?这实际上与我想要的正好相反——我希望每个
  • 的兄弟姐妹都能将这个类应用到他们身上。@Zaemz。请现在就尝试谢谢Sudharsan-我对它做了进一步修改并尝试:
    $(this).sibbins().stop(true,true).toggleClass(“nofocus”,500)
    这实际上是我想要的,只是稍微有点褪色,但是兄弟元素闪烁很快,这与我的另一个答案的效果相同