使用Jquery正确地为多个元素设置动画

时间:2014-07-01 06:38:03

标签: javascript jquery html css animation

可能我没有为我的问题选择最好的标题,对不起。

我对jQuery很新,因此有动画。 我只是试验它,但现在我遇到了问题。

脚本的工作方式与我想要的一样,但似乎有点"越野车",我打赌我的代码没有经过优化,完全......加上我可能用错误的方法来达到我想要的目的。

一个按钮正在触发脚本(它不应该像最后那样,但是我很快就会使用这个按钮触发脚本),它就像一个"切换"每次我点击"显示"时,会显示一堆HTML并运行两个动画:

 $(".achievement_container").hide(300).show(); //shows the whole container
 $(".glow").fadeIn(100).fadeOut(800); // First "brightening" effect

这个显示整个"帧",而另一个动画运行照明效果:

$(".ach_hover").css("left", "0px").css("opacity", "1").animate({
            left: "252px",
            opacity: "0"
        }, 1100);

你可以看到"工作"例如:

http://jsfiddle.net/Frondor/6EA6W/

点击"显示"我的问题出现按钮很多次$(".ach_hover")动画开始失败,它根本没有出现...... 我对最后一个动画的写作方式不满意,至少我认为可能会有更好的标准"实现这一目标的方法。

所以我非常感谢jQuery专家对优化"我的脚本,并避免任何错误的行为。

提前致谢

1 个答案:

答案 0 :(得分:2)

尝试使用jQuery .stop()

  

停止匹配元素上当前正在运行的动画。

$(".ach_hover")
 .css({
        "left": "0px",
        "opacity": "1"
 })
 .stop()
 .animate({
        left: "252px",
        opacity: "0"
}, 1100);

<强> Fiddle