当前位置: 首页 > news >正文

电子商务网站建设侧重点宁波网站建设的公司

电子商务网站建设侧重点,宁波网站建设的公司,查询网站是哪家公司做的,校园网站建设管理vue3封装数值动态递增组件前言源码举个例子:前言 1)使用技术: vue3.2 Ts 2)组件接收参数: 参数类型意义是否可选valuenumber数值大小必填durationnumber递增动画持续时间(单位:s)…

vue3封装数值动态递增组件

  • 前言
  • 源码
  • 举个例子:


前言

1)使用技术:

vue3.2 + Ts

2)组件接收参数:

参数类型意义是否可选
valuenumber数值大小必填
durationnumber递增动画持续时间(单位:s)可选,默认为2
isDecimalboolean是否显示为小数可选,默认为false

3)补充:
组件本身没有过多样式,想实现不同样式可以在调用组件时自定义设置样式

源码

<template><div><span ref="numberDom">0</span></div>
</template><script setup lang="ts">
import { ref, onMounted, onBeforeUpdate, onBeforeUnmount, withDefaults, defineProps } from 'vue';/*** @param value 数值大小 * @param duration 递增动画持续时间;* @param isDecimal 是否显示为小数*/
const props = withDefaults(defineProps<{value: number,duration: number,isDecimal: boolean}>(), {duration: 2,isDecimal: false
})let timer: number  | null = null
const timerDelay = 5
const numberDom = ref<any>(null)onMounted(() => {numericalIncrement(numberDom.value)
})
onBeforeUpdate(() => {if (timer) {clearInterval(timer!)timer = null}numericalIncrement(numberDom.value)
})
onBeforeUnmount(() => {if (timer) {clearInterval(timer!)timer = null}
})/*** @method* @param ele 数值对应的dom元素* @desc 数值递增动画*/
const numericalIncrement = (ele: Element) => {const step = (props.value * timerDelay) / (props.duration * 1000)let current: number = 0let start: number = 0let flag: boolean = falsetimer = setInterval(() => {start += stepif (start >= props.value) {flag = props.isDecimalclearInterval(timer!)start = props.valuetimer = null}current = startif (flag) {ele.innerHTML = current.toString().replace(/(\d)(?=(?:\d{3}[+]?)+$)/g, '$1,')} else {ele.innerHTML = current.toFixed(0) .toString().replace(/(\d)(?=(?:\d{3}[+]?)+$)/g, '$1,')}}, timerDelay)
}
</script><style scoped>
div {display: inline-block;
}
</style>

举个例子:

1)使用代码

<template><div><NumericalIncrement :duration="2" :is-decimal="true" :value="val" class="num"></NumericalIncrement></div>
</template><script setup lang="ts">
import NumericalIncrement from './components/NumericalIncrement.vue'
import {ref,onMounted} from 'vue';
const val = ref(110)
onMounted(()=>{setTimeout(()=>{val.value=200},3000)
})
</script><style scoped>
.num {min-width: 40px;text-align: center;font-size: 20px;background-color: orange;color:#fff;
}
</style>

2)效果在这里插入图片描述


提示:文章到此结束,文章为个人学习记录,侵删。
http://www.hrbkazy.com/news/16638.html

相关文章:

  • 创新的沈阳网站建设种子在线资源搜索神器
  • 论坛类型的网站怎么做如何自己弄一个网站
  • 政府网站banner素材广州seo公司推荐
  • 视频网站logo怎么做网络营销专业的就业方向
  • 湖北建站中心app推广引流渠道
  • 贵州企业网站建设案例快速排名软件案例
  • 东莞网站建站公司2022年十大网络流行语发布
  • wordpress xueqiu对网站的建议和优化
  • 网站建设任务和标准如何在微信上做推广
  • 网站小图标素材下载百度指数查询官方下载
  • 天津市网站建设 网页制作宁波免费seo在线优化
  • H5网站建设报价多少滨州seo排名
  • 毕业设计网站开发的中期报告网站seo外链平台
  • 网站建设费用包括哪些内容2022年seo还值得做吗
  • 深圳市哪里最繁华郑州关键词优化平台
  • 网站seo方案案例google免费入口
  • 网站内容与模板设计方案合肥优化排名推广
  • 沈阳建设工程信息网职称公示2013年seo搜索引擎优化入门
  • 孝感网站建设旅游seo整站优化
  • 阿里巴巴做网站吗上海seo怎么优化
  • 网站建设交流论坛魔贝课凡seo
  • 怎样用模板做网站百搜网络科技有限公司
  • 有了实名制域名怎么做网站百度seo官网
  • wap网站设计规范百度付费推广有几种方式
  • 上海网站建设公司推荐适合40岁女人的培训班
  • 餐饮网站开发软文自动发布软件
  • asp.net实用网站开发doc百度推广找谁
  • 时时彩网站制作今日国内新闻热点
  • 群辉域名登录wordpressseo网站建设优化什么意思
  • 网站备案个人可以做吗免费推广软件下载