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 imgareaselect 使用利用js与程序结合实现图片剪切
Jul 30 Javascript
JavaScript对象学习经验整理
Oct 12 Javascript
使表格的标题列可左右拉伸jquery插件封装
Nov 24 Javascript
node.js中的url.parse方法使用说明
Dec 10 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
Apr 12 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
初探js和简单隐藏效果的实例
Nov 23 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
Aug 19 Javascript
jQuery实现本地存储
Dec 22 jQuery
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爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python中replace方法实例分析
2014/08/20 Python
python人人网登录应用实例
2014/09/26 Python
浅析Python中的多进程与多线程的使用
2015/04/07 Python
Python的Urllib库的基本使用教程
2015/04/30 Python
Python正则简单实例分析
2017/03/21 Python
python僵尸进程产生的原因
2017/07/21 Python
Python 使用with上下文实现计时功能
2018/03/09 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
python如何随机生成高强度密码
2020/08/19 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
高老头读书笔记
2015/06/30 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers