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 相关文章推荐
基于JQuery的简单实现折叠菜单代码
Sep 15 Javascript
js获取事件源及触发该事件的对象
Oct 24 Javascript
用JS在浏览器中创建下载文件
Mar 05 Javascript
jquery实现的一个文章自定义分段显示功能
May 23 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
javascript元素动态创建实现方法
May 13 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 Javascript
vue多种弹框的弹出形式的示例代码
Sep 18 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
vue轮播图插件vue-awesome-swiper
Nov 27 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python编程之多态用法实例详解
2015/05/19 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python中的id()函数指的什么
2017/10/17 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python实现FLV视频拼接功能
2020/01/21 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
德国网上宠物店:Zoobio
2018/05/23 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
新护士岗前培训制度
2014/02/02 职场文书
食品安全演讲稿
2014/09/01 职场文书
军训新闻稿范文
2015/07/17 职场文书
教师师德承诺书2016
2016/03/25 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
Python OpenCV超详细讲解基本功能
2022/04/02 Python
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android