欢迎投稿

菜鸟之家

当前位置:菜鸟之家 > html5库 > HTML5动画 > 简单快速的js的数字动画插件

简单快速的js的数字动画插件

简单快速的js的数字动画插件

关键词:纯js,数字动画,js数字动画效果,数字滚动动画效果,js数字动画,js数字动画特效,js数字动画插件,slowNumber.js,html5库,h5donghua

描述:slowNumber.js是一款简单快速的js的数字动画插件。slowNumber.js插件以最简单的方式快速的执行数字动画特效,你甚至还可以控制每秒钟的动画帧数。

简要教程

slowNumber.js是一款简单快速的js的数字动画插件。slowNumber.js插件以最简单的方式快速的执行数字动画特效,你甚至还可以控制每秒钟的动画帧数。

使用方法

在页面中引入slowNumber.js文件。

<script type="text/javascript" src="js/slowNumber.js"></script>        
                
HTML结构

在页面中添加需要制作数字动画的元素,为它添加slowNumberclass类。

<h2 class="slowNumber">100,42</h2>       
                
JavaScript

slowNumber.js的整个实现代码如下:

var easing = {
    quadratic: function (x){
      return Math.sqrt(x);
    }
};

function range(start, stop, step){
  var array = [];
  for(var i = start; i < stop; i += step) array.push(i);
  return array;
}

function interpolation(fps, easing, finalValue){
  function scaleIt(value){return finalValue * value; }

  var x = range(0, 1, 1/fps),
      y = x.map(easing).map(scaleIt);

  return y;
}

function animateEl(values, duration, onAnimate){
  var frameIndex = 0,
      fps = values.length,
      id = setInterval(anime, duration/fps );

  function anime(){
    var current = values[frameIndex],
        isLastFrame = (frameIndex === fps - 1);

    onAnimate(current, frameIndex, values);

    if(isLastFrame){
      clearInterval(id);
    }else{
      frameIndex++;
    }
  }
}

function round(value, decimals) {
  return Number(Math.round(value+"e"+decimals)+"e-"+decimals);
}

function unformat(content){
  var unlocalized = content.replace(".", "").replace(",", "."),
      value = parseFloat(unlocalized);
  return value;
}

function format(value){
  return value.toString().replace(".", ",");
}

window.addEventListener("DOMContentLoaded", function(){
    var fps = 30,
        els = [].slice.call(document.querySelectorAll(".slowNumber"));

    els.forEach(function(el){
        var content = (el.firstChild.textContent).trim(),
            decimalPlaces = content.split(",")[1] || "",
            value = unformat(content),
            values = interpolation(fps, easing.quadratic, value);

        animateEl(values, 1000, function (current, i, values){
          var isLast = (i === values.length - 1),
              value = round(current, decimalPlaces.length);
          el.firstChild.textContent = isLast? content : format(value);
        });
    });
});
                

slowNumber.js数字动画插件的github地址为:https://github.com/israelst/slowNumber.js

说明:菜鸟之家所有素材均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系QQ:11809283或发送邮件至11809283@qq.com。

菜鸟之家承诺:本站所有资源,无需注册,免费下载,无病毒,无弹窗,无干扰链接!

转载请注明出处!本文地址:http://www.jeeok.com/h5_h5donghua/9180.html

 在线演示  免费下载
编号:201808020000009180
大小:0.01MB
上传时间:2018-09-04 08:01
素材由用户"mmmbn711"上传分享。

标签

最新推荐素材

与简单快速的js的数字动画插件相关的素材

.