【问题标题】:How To Build Custom jQuery Easing/Bounce Animations?如何构建自定义 jQuery 缓动/弹跳动画?
【发布时间】:2013-01-05 22:49:32
【问题描述】:

我熟悉 jQuery animate 功能,也经历过各种jQuery UI easing functions。不幸的是,它们都不是我正在寻找的相同动画效果,所以是否可以创建自己的缓动函数?

我正在尝试的动画可以在Apple Mac webopage 上看到,动态加载的产品小部件位于顶部。最初的项目似乎从顶部滑入,然后在着陆后产生反弹效果。是否可以使用自定义 jQuery 代码重新创建这种缓动样式?或者可能构建您自己的第 3 方简易函数?

我已经包含了我正在谈论的内容的屏幕,希望有人可以提供解决方案。在此先感谢:)

【问题讨论】:

  • 看看这个 - stackoverflow.com/questions/5916058/… 它应该可以帮助您了解如何为缓动函数构建或添加缓动类型。 forrst.com/posts/…
  • 任何人都在查看此页面上的动画 javascript 位于 images.apple.com/global/scripts/productbrowser.js 并在 addVendorEventListener("animationStart",m); 行添加动画对于产品网格中的每个元素。
  • 您提供的示例页面在 IE(版本 10 以下)中的工作方式不同,这表明它实际上(大部分)是 CSS 动画的。只有少数项目实际上是使用 JavaScript/JQuery 进行动画处理的,例如包含滑入视图的产品类别的单个 DIV,并且底部的插入符号似乎也使用 JS 进行了动画处理。看看Animate.css examples,看看其中是否符合您的需求,或者您是否可以根据其中描述的 CSS 动画/转换技术“自己动手”
  • @FarrukhSubhani - 看起来它是通过 CSS 动画完成的:images.apple.com/global/styles/productbrowser.css Line 169Line 340
  • @Derek 谢谢你,这似乎是正确的。我相当有信心这个动画是建立在 JS 上的,但我必须使用源代码来玩。

标签: jquery jquery-ui animation jquery-animate easing


【解决方案1】:

见我的demo here

主要思想是使用easeOutCubic效果执行2个连续动画:

HTML:

<div class='left'></div>
<div class='center'></div>
<div class='right'></div>

JS:

$('div.left').animate({top: 410, left: 10}, 300, "easeOutCubic", function(){
    $('div.left').animate({top: 400, left: 20}, 300, "easeOutCubic");
});

$('div.center').animate({top: 420}, 300, "easeOutCubic", function(){
    $('div.center').animate({top: 400}, 300, "easeOutCubic");
});

$('div.right').animate({top: 410, right: 10}, 300, "easeOutCubic", function(){
    $('div.right').animate({top: 400, right: 20}, 300, "easeOutCubic");
});

【讨论】:

  • 这是一个很好的 jQuery 解决方案,谢谢。享受赏金!我将打开另一个问题来寻找使用 CSS3 关键帧的解决方案。
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 2014-03-20
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多