【问题标题】:jQuery UI Explode Effect QueuejQuery UI 爆炸效果队列
【发布时间】:2012-03-30 11:24:09
【问题描述】:

我正在尝试同时应用动画,其中之一是 UI 爆炸效果。我查看了爆炸效果的源代码,发现它正在排队。有什么办法可以防止它被排队,这样我就可以在爆炸效果的同时运行多个动画?

谢谢!

【问题讨论】:

    标签: javascript jquery user-interface explode effect


    【解决方案1】:

    我不熟悉具体的爆炸效果,但我知道 jQuery animate() 允许使用 queue 选项(参见 http://api.jquery.com/animate/ - 有一个如何使用此选项的示例)来确定是否放置效果队列中所需的动画。如果为 false,则动画不会被放入队列并立即开始。这有帮助吗?

    【讨论】:

    • 不,很遗憾没有。爆炸效果在 .animate 上运行并内置在 UI 中,但默认情况下是排队的。更改实际的 UI 源似乎是唯一的选择......不过谢谢!
    【解决方案2】:

    问题在于爆炸功能的设计方式。

    它从顶部和左侧获取元素的偏移量。它测量这些以计算返回的位置、行驶的距离等。没有这些值,它就无法做出这些决定。它的构建不够健壮,无法支持动态计算;理所当然。

    我可以用三个例子来证明这个理论。

    第一:

    Queued Animation Issue (As Described)

    第二:

    Attempting to Inject using setTimeout returns error offset.top() is null

    这使您能够清楚地了解为什么会发生这种情况。最明显的答案是,除非您更改了代码的核心功能,否则此解决方案无法修复。

    这让我想到了最后一个例子。在下面的示例中,我们将元素包装在一个 div 中。我们为父元素的位置设置动画,然后分解子元素。让我们看看它是如何工作的。

    第三:

    As we can see here, the issue is in how the offset is calculated.

    它可以得到结束和开始,但它不能抓住动画中间的偏移量。

    我相信这也是您所指的问题 - 不幸的是(总的来说)除了自己编写之外,您无能为力。

    【讨论】:

    • 我想的差不多了,非常感谢你的详细解释:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多