javascript - 如何为视差运动添加缓动?

标签 javascript easing easing-functions

我正在对某些图像应用视差效果,并且我想对它们应用缓动。视差的逻辑非常简单,我计算图像距窗口中心的距离,并将其表示为 1 的因子,其中 0 是屏幕的中间,1 是底部。我也可能将其应用到屏幕的上半部分,因此 -1 将是顶部。

理想情况下,我想直接插入这里的一些函数(http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js)。所以假设我希望使用“easeOutSine”:

//t:当前时间,b:begInnIng 值,c:change In 值,d:持续时间 函数(x,t,b,c,d){ 返回 c * Math.sin(t/d * (Math.PI/2)) + b; }

我传入什么值?我认为最不明显的是 d(持续时间),因为这些不是基于持续时间的动画。这些方程是否合适?

注意:我不想使用任何库,这是纯 JS。

最佳答案

我自己想出了这个办法。无需发布我的所有代码,以下是其要点:

function easeInQuart(t, b, c, d) {
  return c*(t/=d)*t*t*t + b;
}

var deltaY // The distance the element is from the bottom of
           // the screen expressed as a factor of 1

var origY // The original position
var distanceY // The distance it can move
var y = easeInQuart(deltaY, origY, distanceY, 1); 

关于javascript - 如何为视差运动添加缓动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25056769/

相关文章:

javascript - 在 firefox 扩展中使用 jQuery

java - 将 Vector3 缓动到新位置

jquery - 向自定义动画功能添加缓动

Javascript文本框高亮问题

javascript - React redux props 不更新

javascript - Google URL Shortener API 403 被禁止

c# - 缓动动画 'twitches' 完成时

javascript - css动画定时/缓动功能仅在第一次有效

javascript - D3 圆半径的弹性缓动过渡导致设置负半径

android - 如何在 Android 中的 View 上应用缓动动画功能