美文网首页
缓动动画js小算法

缓动动画js小算法

作者: 狂奔的蜗牛壳 | 来源:发表于2017-04-17 17:40 被阅读0次

后宫请翻Tween.js

1. 先快后慢的缓动动画

用一个简单的公式表示就是:

A = A + (B - A) / 2;

用人话讲就是:

我下一秒的位置 = 现在位置 + 现在和初恋之间距离的一半

先来介绍下requestAnimationFrame,对于不支持的浏览器,采用下面的兼容写法:

if (!window.requestAnimationFrame) {
  requestAnimationFrame = function(fn) {
    setTimeout(fn, 17);  
  }
}

下面来看一个🍐子:

var back_to_top = function(rate) {
  var doc = document.body.scrollTop ? document.body : document.documentElement,
  scrollTop = doc.scrollTop;
  var top = function() {
    scrollTop += (0 - scrollTop) / (rate || 2);
    // 临界判断,终止动画
    if (scrollTop < 1) {
      doc.scrollTop = 0;
      return;
    }
    doc.scrollTop = scrollTop;
    requestAnimationFrame(top);
  };
  top();
}

2. 小算法变身

Math.easeOut = function(A, B, rate, callback) {
  if (A == B || typeof A != 'number') {
    return;
  }
  B = B || 0;
  rate = rate || 2;
  var step = function() {
    A = A + (B - A) / rate;
    if (A < 1) {
      callback(B, true);
      return;
    }
    callback(A, false);
    requestAnimationFrame();
  };
  step();
}

于是,我们的返回顶部效果可以这么使用:

var doc = document.body.scrollTop? document.body : document.documentElement;
Math.easeout(doc.scrollTop, 0, 4, function (value) {
    doc.scrollTop = value;
});

相关文章

  • 缓动动画js小算法

    后宫请翻Tween.js 1. 先快后慢的缓动动画 用一个简单的公式表示就是: 用人话讲就是: 先来介绍下requ...

  • canvas星空文字粒子动画

    在学习的时候呢,学习了tween缓动js、requestAnimationFrame动画、canvas中加载特殊字...

  • 轮播图(2)——基于JQ的左右滑动轮播

    上回书我们说到原生js淡入淡出效果的轮播图,这回我们说说左右滑动轮播图,由于需要缓动动画效果,原生js需要封装缓动...

  • 动画与缓动

  • React native 动画详解

    参考文档 :动画概述、动画API、动画缓动函数、interactionmanager 文档其实已经比较详细了,这里...

  • 动画和封装

    动画的种类 闪现匀速缓动 动画原理 盒子的位置 = 盒子本身所在的位置+步长。 缓动动画 三个函数 Math.ce...

  • 用缓动函数模拟弹簧,碰撞等动画效果

    最近学习了一下用缓动函数模拟物理动画的效果,可以实现一些比较高级的动画效果,比如弹簧效果等。 1.缓动函数的动画效...

  • 动画函数

    Transition TypesiOS easing tween 动画效果缓动函数让界面动画更自然How to c...

  • Web API -- 动画函数封装

    **1.1. **动画函数封装 1.1.1 缓动效果原理 缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢...

  • 【iOS】缓动(easing)动画简介

    学习文章 Swift-EasingAnimation 网站建设中前端常用的jQuery+easing缓动的动画 E...

网友评论

      本文标题:缓动动画js小算法

      本文链接:https://www.haomeiwen.com/subject/lontzttx.html