vue 使用async写数字动态加载效果案例


Posted in Javascript onJuly 18, 2020

父组件

<interval-number :number-content="blockHeight" v-if="blockHeight>0"></interval-number>
 
import IntervalNumber from './IntervalNumber.vue'
components:{
  IntervalNumber,
}

子组件

<template>
 <span class="IntervalNumber">
 {{ counter }}
 </span>
</template>
<script>
export default {
 name: 'IntervalNumber',
 props: {
  numberContent: Number
 },
 data () {
  return {
   counter: this.numberContent,
   timeTicket: null,
  }
 },
 mounted(){
  let time = 1000 //ms 数字滚动总时间
  let delayTime = 30 // ms 数字滚动间隔时间
  let divisions = time / delayTime
 
  this.asyncPrint(this.counter, divisions, delayTime)
  
 },
 methods:{
  timeOut(ms) {
   return new Promise((resolve) => {
    this.timeTicket = setTimeout(resolve, ms)
   })
  },
  async asyncPrint(value, divisions, ms){
   for(let i=0; i< divisions; i++){
    
    try {
     await this.timeOut(ms);
    } catch (err) {
     console.log(err)
    }
 
    this.counter = Math.round(value / divisions * i);
   }
   
   this.counter = this.numberContent
 
   clearTimeout(this.timeTicket)
   this.timeTicket = null
  }
 }
}
</script>

补充知识:vue利用 vue-animate-number插件动态展示数字(从0动态滚动到指定数字)

vue-animate-number插件git地址: https://github.com/wangdahoo/vue-animate-number

1.具体实现步骤如下

如果你想展示一下自己的技术,也可以用代码一行一行的写,如果你像我一样“聪明”的话,咱还是用这个插件,亲测效果不错,简单易懂!哈哈,开个玩笑!说正事!

第一步:安装vue-animate-number插件

$ npm install vue-animate-number

第二步:在main.js中引入

import Vue from 'vue'
import VueAnimateNumber from 'vue-animate-number'
Vue.use(VueAnimateNumber)

第三步:在组件中使用

把所有用到的案例都在下面组件中写出

<template>
 <div>
 
  <animate-number
   from="1" 
   to="10" 
   duration="1000" 
   easing="easeOutQuad"
   :formatter="formatter"
  ></animate-number>
  
   <!-- 最简单的案例,from是开始值,to是结束值 -->
  <animate-number from="1" to="10"></animate-number>
  
  <animate-number ref="myNum" from="0" to="10" mode="manual" :formatter="formatter"></animate-number><br>
  
   <!-- 也可以通过按钮去触发-->
  <button type="button" @click="startAnimate()"> animate! </button>
 </div>
</template>

<script>
 export default {
  methods: {
   formatter: function (num) {
    return num.toFixed(2)
   },

   startAnimate: function () {
    this.$refs.myNum.start()
   }
  }
 }
</script>

vue 使用async写数字动态加载效果案例

vue 使用async写数字动态加载效果案例

2.vue-animate-number的API

以上显示的代码以及步骤git上都有,并且也比较详细,没事大家可以浏览一下,收藏起来,用到的时候多方便!

以上这篇vue 使用async写数字动态加载效果案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript异步编程:异步数据收集的具体方法
Aug 19 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
Jan 13 Javascript
查询json的数据结构的8种方式简介
Mar 10 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
javascript求日期差的方法
Mar 02 Javascript
深入了解JavaScript的逻辑运算符(与、或)
Dec 20 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
Vue文件配置全局变量的实例
Sep 06 Javascript
分享一款超好用的JavaScript 打包压缩工具
Apr 26 Javascript
JavaScript数组排序功能简单实现
May 14 Javascript
vue-router为激活的路由设置样式操作
Jul 18 #Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 #Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 #Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 #Javascript
vue element table中自定义一些input的验证操作
Jul 18 #Javascript
vue cli4.0项目引入typescript的方法
Jul 17 #Javascript
js实现省级联动(数据结构优化)
Jul 17 #Javascript
You might like
显示程序执行时间php函数代码
2013/08/29 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PHP微信API接口类
2016/08/22 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
一个用js实现控制台控件的代码
2007/09/04 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
电气专业应届生求职信
2013/11/01 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
报名委托书
2015/01/29 职场文书
个人委托函范文
2015/01/29 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript