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 操作XML入门
Dec 25 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
AngularJS中的表单简单入门
Jul 28 Javascript
Bootstrap table的使用方法
Nov 02 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
vue项目或网页上实现文字转换成语音播放功能
Jun 09 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP 超链接 抓取实现代码
2009/06/29 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
Python: glob匹配文件的操作
2020/12/11 Python
Python实现微信表情包炸群功能
2021/01/28 Python
Python对excel的基本操作方法
2021/02/18 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
学习党章思想汇报
2014/01/07 职场文书
学生宿舍管理制度
2014/01/30 职场文书
生日宴会主持词
2014/03/20 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
公司年会开场白
2015/06/01 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js