【问题标题】:jQuery: Dequeue Specific AnimationsjQuery:出列特定动画
【发布时间】:2010-12-27 20:10:25
【问题描述】:

我有一些边框可以在 mouseenter 上和 mouseleave 上围绕缩略图进行动画处理。假设用户在两者之间反复移动鼠标,速度足够快,以至于动画在用户继续移动之前没有时间完成。结果是,即使鼠标没有移动,边框也会在它们切换的两个图像之间来回弹跳,直到所有排队的动画完成,这可能需要一段时间。为了防止这种情况,我在.animate() 之前添加了.dequeue()。这很好用,除了我可能正在运行一些其他动画。我不想停止/出列这些。
有没有办法选择性地出列动画,排除一些?我要排除的是滚动动画,也是在 mouseenter 上触发的。 p>

【问题讨论】:

  • 不是重复的。该线程是关于一般出队的。
  • 想法!是否可以使用多个队列来做到这一点?所以,我将边框动画排入一个队列,将滚动排入另一个队列,然后停止我想要的一个。那行得通吗?我从来没有完全掌握queue() 东西的窍门,我希望能得到一些指点。

标签: javascript jquery html css


【解决方案1】:

您在寻找类似this 的东西吗?

编辑: 啊,我明白了,here 是我能想到的最接近的解决方案。

【讨论】:

  • 这是一般的停止。我希望停止只是其他边框动画
【解决方案2】:

没有内置的方法可以做到这一点,我认为您不会找到不涉及重新编写动画引擎的相当一部分的方法。动画在排队时采用一个对象。它loops though all properties in the object and determines the start value and end value。要获取动画步骤中的值(取决于您的缓动,我们将在此处使用linear 作为示例),它是multiplies that difference by the percentage along the animation is

这一切都作为一组属性处理,你不能真正将它们分开并停止一些而不是其他的动画......它只是不是为了这样处理而构建的。 如果是这样的话,单独处理它们是一个巨大的性能损失(想想这段代码运行了多少次)......所以对于这种罕见的情况(你的需要在这里),库正在运行选择适合其他 99% 情况的高性能路线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2011-05-11
    相关资源
    最近更新 更多