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 相关文章推荐
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
jQuery事件绑定on()与弹窗实现代码
Apr 28 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
jQuery实现删除li节点的方法
Dec 06 Javascript
webpack热模块替换(HMR)/热更新的方法
Apr 05 Javascript
layDate插件设置开始和结束时间
Nov 15 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
Jan 20 Javascript
vue双向绑定数据限制长度的方法
Nov 04 Javascript
js实现AI五子棋人机大战
May 28 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
JavaScript onclick事件使用方法详解
May 15 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设计模式之工厂模式定义与用法详解
2018/04/03 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
JavaScript 基本概念
2015/01/20 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python监控主机是否存活并以邮件报警
2015/09/22 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
python模块内置属性概念及实例
2021/02/18 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
什么是serialVersionUID
2016/03/04 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
英语专业推荐信
2013/11/16 职场文书
大学生就业推荐信范文
2013/11/29 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers