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 相关文章推荐
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
js中的this关键字详解
Sep 25 Javascript
JavaScript中的alert()函数使用技巧详解
Dec 29 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 Javascript
jQuery中text() val()和html()的区别实例详解
Jun 28 Javascript
JS实现HTML标签转义及反转义
Apr 14 Javascript
Angular如何引入第三方库的方法详解
Jul 13 Javascript
浅谈angular4 ng-content 中隐藏的内容
Aug 18 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 Javascript
TypeScript 运行时类型检查补充工具
Sep 28 Javascript
低门槛开发iOS、Android、小程序应用的前端框架详解
Oct 16 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
Cannot modify header information错误解决方法
2008/10/08 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
python中urllib模块用法实例详解
2014/11/19 Python
Python isinstance函数介绍
2015/04/14 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Python 变量类型详解
2018/10/10 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
给实习单位的感谢信
2014/02/01 职场文书
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
网络研修随笔感言
2014/02/17 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
元旦联欢会感言
2014/03/04 职场文书
《去年的树》教学反思
2014/04/11 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
初中政治教学工作总结
2015/08/13 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js