利用JS实现数字增长


Posted in Javascript onJuly 28, 2016

上次在项目中碰到要实现数字增长的效果,实现数字从0到目标数的增长,来看看效果图

利用JS实现数字增长

现在把它扩展开来可以实现不同效果

利用JS实现数字增长

主要思路就两部分

    1.每隔三个数字之间加上,

    2.实现动起来

对于1使用正则来完成十分的方便

this.fomatNum = function(num) {
      var str = num.toFixed(this.option.decimal);//精确到小数位数多少位
      var num1, x1, x2, reg;
      arr = str.split(".");
      x1 = arr[0];
      x2 = arr.length > 1 ? '.' + arr[1] : "";
      reg = /(\d+)(\d{3})/;
      if (this.option.isfomat) {
        while (reg.test(x1)) {
          x1 = x1.replace(reg, '$1' + "," + "$2");
        }
      }
      if (this.option.isfomat) {
        return this.option.prefix + x1 + x2;
      } else {
        return this.option.prefix + str;
      }
    }

要实现加起来的效果可以使用requestAnimationFrame方法,然后处理一下兼容就可以了。

var change = function() {
  var p = Math.min(1.0, (new Date().getTime() - that.startTime) / that.option.duration);//当前时间减去开始时间,然后除以总时间,Math.min,两个数取最小值。
  var nums = that.num * p;
  that.elm.innerHTML = that.fomatNum(that.num * p);
  if (p < 1.0) {//
     requestAnimationFrame(function() {
        change();
     });
   } else {
        cancelAnimationFrame(change);
       }
  }
  requestAnimationFrame(function() {
     change();
   });

如果要实现数字在可视区再动起来的效果,可以自己监听dom是否在可视区然后调用。

以上就是本文的全部内容,如果有疑问欢迎大家留言探讨,也谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript Date对象使用总结
May 14 Javascript
IE无法设置短域名下Cookie
Sep 23 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
Apr 12 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 Javascript
AngularJS自动表单验证
Feb 01 Javascript
Javascript缓存API
Jun 14 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
JS实现标签页切换效果
May 04 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 Javascript
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
vue 扩展现有组件的操作
Aug 14 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 Javascript
灵活使用数组制作图片切换js实现
Jul 28 #Javascript
AngularJS 中文API参考手册
Jul 28 #Javascript
AngularJS 简单应用实例
Jul 28 #Javascript
AngularJS 路由详解和简单实例
Jul 28 #Javascript
AngularJS 依赖注入详解和简单实例
Jul 28 #Javascript
AngularJS中实现动画效果的方法
Jul 28 #Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
Jul 28 #Javascript
You might like
NOT NULL 和NULL
2007/01/15 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Python3 中文文件读写方法
2018/01/23 Python
python使用KNN算法手写体识别
2018/02/01 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
python实现多层感知器
2019/01/18 Python
django使用多个数据库的方法实例
2021/03/04 Python
毕业生的自我评价范文
2013/12/31 职场文书
农业开发项目建议书
2014/05/16 职场文书
大型会议策划方案
2014/05/17 职场文书
优秀家长事迹材料
2014/05/17 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
2014年维稳工作总结
2014/11/18 职场文书
会议开幕词
2015/01/28 职场文书
三峡人家导游词
2015/01/31 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python