最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3.0翻牌數(shù)字組件使用方法詳解

 更新時(shí)間:2022年04月20日 12:04:27   作者:給我一個(gè)div,我給你畫(huà)個(gè)餅  
這篇文章主要為大家詳細(xì)介紹了vue3.0翻牌數(shù)字組件使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue3.0翻牌數(shù)字組件使用的具體代碼,供大家參考,具體內(nèi)容如下

代碼

<template>
? <div class="number-count-wrap" :class="numberSize">
? ? <!-- 標(biāo)題 start -->
? ? <div class="number-title" :style="{'text-align': titleAlign}">{{title}}</div>
? ? <!-- 標(biāo)題 end -->
? ? <div class="number-count" :class="numberAlign">
? ? ? <!-- 計(jì)數(shù)器 start -->
? ? ? <ul class="number-content">
? ? ? ? <template v-for="(item,index) in orderNum"
? ? ? ? ? :key="index">
? ? ? ? <li class="number-item" v-if="!isNaN(item)">
? ? ? ? ? <span>
? ? ? ? ? ? <ul class="number-list" :ref="numberItem">
? ? ? ? ? ? ? <li>0</li>
? ? ? ? ? ? ? <li>1</li>
? ? ? ? ? ? ? <li>2</li>
? ? ? ? ? ? ? <li>3</li>
? ? ? ? ? ? ? <li>4</li>
? ? ? ? ? ? ? <li>5</li>
? ? ? ? ? ? ? <li>6</li>
? ? ? ? ? ? ? <li>7</li>
? ? ? ? ? ? ? <li>8</li>
? ? ? ? ? ? ? <li>9</li>
? ? ? ? ? ? </ul>
? ? ? ? ? </span>
? ? ? ? </li>
? ? ? ? <li class="separator" v-else>
? ? ? ? ? {{item}}
? ? ? ? </li>
? ? ? ? </template>
? ? ? </ul>
? ? ? <!-- 計(jì)數(shù)器 end -->
? ? ? <!-- 單位 start -->
? ? ? <div class="number-unit" v-if="unit">{{unit}}</div>
? ? ? <!-- 單位 end -->
? ? </div>
? </div>
</template>

<script>
import { onMounted, watch, ref, reactive, toRefs } from 'vue'
export default {
? name: "numberCount",
? props: {
? ? numberSize: { // 字號(hào)大小 middle 中號(hào) small 小號(hào)
? ? ? type: String,
? ? ? default: ''
? ? },
? ? title: { // 標(biāo)題
? ? ? type: String,
? ? ? default: ""
? ? },
? ? titleAlign: { // 標(biāo)題對(duì)齊方式
? ? ? type: String,
? ? ? default: ''
? ? },
? ? numberAlign: { //數(shù)字對(duì)齊方式
? ? ? type: String, // center 居中對(duì)齊
? ? ? default: ''
? ? },
? ? unit: { // 單位
? ? ? type: String,
? ? ? default: ""
? ? },
? ? countNum: { // 數(shù)值
? ? ? type: Number,
? ? },
? ? initDelay: { // 首次加載延時(shí)
? ? ? type: Number,
? ? }
? },
? setup(props) {
? ? const numberItemList = ref([]);
? ? const numberItem = (el) => {
? ? ? numberItemList.value.push(el);
? ? };
? ? var locarCountNum = props.countNum.toLocaleString()
? ? locarCountNum = locarCountNum.split('')
? ? const data = reactive({
? ? ? orderNum: locarCountNum, // 默認(rèn)訂單總數(shù)
? ? });
? ? watch(props, (nval, oval) => {
? ? ? if (nval) {
? ? ? ? toOrderNum(nval.countNum)
? ? ? }
? ? })
? ? onMounted(() => {
? ? ? setTimeout(() => {
? ? ? ? toOrderNum(props.countNum) // 這里輸入數(shù)字即可調(diào)用
? ? ? }, props.initDelay);
? ? })
? ? function setNumberTransform () {
? ? ? const numberItems = numberItemList.value // 拿到數(shù)字的ref,計(jì)算元素?cái)?shù)量
? ? ? const numberArr = data.orderNum.filter(item => !isNaN(item))
? ? ? // 結(jié)合CSS 對(duì)數(shù)字字符進(jìn)行滾動(dòng),顯示訂單數(shù)量
? ? ? for (let index = 0; index < numberItems.length; index++) {
? ? ? ? const elem = numberItems[index]
? ? ? ? elem.style.transform = `translate(0%, -${numberArr[index] * 10}%)`
? ? ? }
? ? }
? ? // 處理總訂單數(shù)字
? ? function toOrderNum(num) {
? ? ? // console.log('num',num)
? ? ? // num = num.toString()
? ? ? // 把訂單數(shù)變成字符串
? ? ? // if (num.length < 7) {
? ? ? // ? num = '0' + num // 如未滿八位數(shù),添加"0"補(bǔ)位
? ? ? // ? toOrderNum(num) // 遞歸添加"0"補(bǔ)位
? ? ? // } else if (num.length === 7) {
? ? ? // ? // 訂單數(shù)中加入逗號(hào)
? ? ? // ? // num = num.slice(0, 2) + ',' + num.slice(2, 5) + ',' + num.slice(5, 8)
? ? ? // ? data.orderNum = num.split('') // 將其便變成數(shù)據(jù),渲染至滾動(dòng)數(shù)組
? ? ? // } else {
? ? ? // ? // 訂單總量數(shù)字超過(guò)八位顯示異常
? ? ? // ? // _this.$message.warning('總量數(shù)字過(guò)大')
? ? ? // }
? ? ? setNumberTransform()
? ? }
? ? return {
? ? ? setNumberTransform,
? ? ? toOrderNum,
? ? ? numberItem,
? ? ? ...toRefs(data)
? ? }
? }
};
</script>
<style scoped lang="less">
.number-count-wrap {
? .number-title {
? ? font-size: .18rem;
? ? color: #FFFFFF;
? ? line-height: 1;
? ? margin-bottom: .15rem;
? ? font-weight: bold;
? }
? .number-count {
? ? display: flex;
? ? justify-content: flex-start;
? ? align-items: flex-end;
? ? .number-content {
? ? ? display: flex;
? ? ? justify-content: flex-start;
? ? ? align-items: center;
? ? ? ? /*文字禁止編輯*/
? ? ? -moz-user-select: none; /*火狐*/
? ? ? -webkit-user-select: none; /*webkit瀏覽器*/
? ? ? -ms-user-select: none; /*IE10*/
? ? ? -khtml-user-select: none; /*早期瀏覽器*/
? ? ? user-select: none;
? ? ? .number-item {
? ? ? ? width: 0.32rem;
? ? ? ? // height: 1.8rem;
? ? ? ? display: flex;
? ? ? ? justify-content: center;
? ? ? ? align-items: center;
? ? ? ? margin: 0 0.02rem;
? ? ? ? &>span {
? ? ? ? ? position: relative;
? ? ? ? ? display: inline-block;
? ? ? ? ? width: 100%;
? ? ? ? ? height: 0.4rem;
? ? ? ? ? overflow: hidden;
? ? ? ? ? background: linear-gradient(180deg, #2167D0 0%, #164D8F 100%);
? ? ? ? ? box-shadow: 0 .04rem 0 0 #176ED6;
? ? ? ? ? border-radius: .06rem;
? ? ? ? ? border: 1px solid white;
? ? ? ? ? padding-bottom: .04rem;
? ? ? ? ? box-sizing: border-box;
? ? ? ? ? .number-list{
? ? ? ? ? ? transition: transform 1s ease-in-out;
? ? ? ? ? ? text-align: center;
? ? ? ? ? ? font-weight: 600;
? ? ? ? ? ? li {
? ? ? ? ? ? ? height: 0.4rem;
? ? ? ? ? ? ? display: flex;
? ? ? ? ? ? ? justify-content: center;
? ? ? ? ? ? ? align-items: center;
? ? ? ? ? ? ? font-size: .3rem;
? ? ? ? ? ? ? font-weight:400;
? ? ? ? ? ? ? color: white;
? ? ? ? ? ? ? padding-bottom: .04rem;
? ? ? ? ? ? ? box-sizing: border-box;
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? ? .separator {
? ? ? ? font-size: .3rem;
? ? ? ? font-weight: normal;
? ? ? ? color: #FFFFFF;
? ? ? ? line-height: 1;
? ? ? ? margin: 0 0.025rem;
? ? ? }
? ? }
? ? .number-unit {
? ? ? margin-left: .1rem;
? ? ? font-size: .18rem;
? ? ? font-weight: normal;
? ? ? color: #B1B7BC;
? ? }
? }
? .center {
? ? justify-content: center;
? }
}

// middle start
.middle {
? .number-title {
? ? font-size: .12rem;
? ? margin-bottom: .10rem;
? }
? .number-count {
? ? .number-content {
? ? ? .number-item {
? ? ? ? width: 0.2rem;
? ? ? ? margin: 0 0.0175rem;
? ? ? ? &>span {
? ? ? ? ? height: 0.25rem;
? ? ? ? ? box-shadow: 0 .025rem 0 0 #176ED6;
? ? ? ? ? border-radius: .04rem;
? ? ? ? ? padding-bottom: .025rem;
? ? ? ? ? .number-list{
? ? ? ? ? ? li {
? ? ? ? ? ? ? height: 0.25rem;
? ? ? ? ? ? ? font-size: .2rem;
? ? ? ? ? ? ? font-weight:400;
? ? ? ? ? ? ? color: white;
? ? ? ? ? ? ? box-sizing: border-box;
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? ? .separator {
? ? ? ? font-size: .2rem;
? ? ? ? margin: 0 0.025rem;
? ? ? }
? ? }
? ? .number-unit {
? ? ? margin-left: .06rem;
? ? ? font-size: .12rem;
? ? }
? }
}
// middle end
</style>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中的Computed實(shí)現(xiàn)原理分析

    Vue中的Computed實(shí)現(xiàn)原理分析

    這篇文章主要介紹了Vue中的Computed實(shí)現(xiàn)原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue動(dòng)態(tài)構(gòu)建混合數(shù)據(jù)Treeselect選擇樹(shù)及巨樹(shù)問(wèn)題的解決

    Vue動(dòng)態(tài)構(gòu)建混合數(shù)據(jù)Treeselect選擇樹(shù)及巨樹(shù)問(wèn)題的解決

    這篇文章主要介紹了Vue動(dòng)態(tài)構(gòu)建混合數(shù)據(jù)Treeselect選擇樹(shù)及巨樹(shù)問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器

    基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器

    這篇文章主要介紹了基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器,由于微信小程序不能使用常規(guī)的圖文編輯器(比如百度的UEditor )編輯新聞內(nèi)容之類的,所以用vue寫(xiě)了個(gè)針對(duì)小程序用的圖文編輯器需要的朋友可以參考下
    2018-07-07
  • 一文了解vue-router之hash模式和history模式

    一文了解vue-router之hash模式和history模式

    這篇文章主要介紹了一文了解vue-router之hash模式和history模式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Vuex模塊化與持久化深入講解

    Vuex模塊化與持久化深入講解

    在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中,如果公共數(shù)據(jù)比較多我們會(huì)使用vuex做公共狀態(tài)管理,但是在對(duì)瀏覽器進(jìn)行刷新操作的時(shí)候,會(huì)導(dǎo)致vuex內(nèi)的數(shù)據(jù)丟失,這種情況有些時(shí)候是沒(méi)問(wèn)題的,但是有的時(shí)候我們需要某些數(shù)據(jù)可以持久化的保存,這樣就需要做對(duì)應(yīng)的處理
    2023-01-01
  • vue使用技巧及vue項(xiàng)目中遇到的問(wèn)題

    vue使用技巧及vue項(xiàng)目中遇到的問(wèn)題

    這篇文章主要介紹了vue使用技巧及vue項(xiàng)目中遇到的問(wèn)題,本文給大家?guī)?lái)的只是一部分,后續(xù)還會(huì)持續(xù)更新,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-06-06
  • 詳解如何使用Vue實(shí)現(xiàn)圖像識(shí)別和人臉對(duì)比

    詳解如何使用Vue實(shí)現(xiàn)圖像識(shí)別和人臉對(duì)比

    隨著人工智能的發(fā)展,圖像識(shí)別和人臉識(shí)別技術(shù)已經(jīng)被廣泛應(yīng)用于各種應(yīng)用程序中,Vue為我們提供了許多實(shí)用工具和庫(kù),可以幫助我們?cè)趹?yīng)用程序中進(jìn)行圖像識(shí)別和人臉識(shí)別,在本文中,我們將介紹如何使用Vue進(jìn)行圖像識(shí)別和人臉對(duì)比,需要的朋友可以參考下
    2023-06-06
  • 詳解使用jest對(duì)vue項(xiàng)目進(jìn)行單元測(cè)試

    詳解使用jest對(duì)vue項(xiàng)目進(jìn)行單元測(cè)試

    這篇文章主要介紹了詳解使用jest對(duì)vue項(xiàng)目進(jìn)行單元測(cè)試,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vue淺拷貝和深拷貝實(shí)現(xiàn)方案

    Vue淺拷貝和深拷貝實(shí)現(xiàn)方案

    在理解淺拷貝和深拷貝淺前,必須先理解基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別,這篇文章主要介紹了Vue淺拷貝和深拷貝實(shí)現(xiàn)方案及區(qū)別對(duì)比分析,需要的朋友可以參考下
    2023-03-03
  • 基于Vue和ECharts實(shí)現(xiàn)定時(shí)更新與倒計(jì)時(shí)功能的實(shí)戰(zhàn)分享

    基于Vue和ECharts實(shí)現(xiàn)定時(shí)更新與倒計(jì)時(shí)功能的實(shí)戰(zhàn)分享

    在前端開(kāi)發(fā)中,動(dòng)態(tài)數(shù)據(jù)展示和用戶交互是構(gòu)建現(xiàn)代 Web 應(yīng)用的核心需求之一,在本篇博客中,我們將通過(guò)一個(gè)簡(jiǎn)單的案例,展示如何在 Vue 中結(jié)合 ECharts 實(shí)現(xiàn)一個(gè)定時(shí)更新和倒計(jì)時(shí)功能,用于實(shí)時(shí)監(jiān)控和數(shù)據(jù)可視化,需要的朋友可以參考下
    2025-01-01

最新評(píng)論

长沙市| 克拉玛依市| 贡嘎县| 上蔡县| 西藏| 呈贡县| 玛沁县| 建昌县| 邳州市| 高阳县| 山丹县| 承德市| 安康市| 丰顺县| 惠来县| 汉寿县| 武汉市| 宜兰县| 巴里| 宿迁市| 侯马市| 乐山市| 怀宁县| 庄河市| 神木县| 九龙县| 朝阳市| 嘉鱼县| 昌邑市| 蒲城县| 安陆市| 彩票| 泗阳县| 峨眉山市| 长治市| 赤壁市| 德昌县| 称多县| 集贤县| 广饶县| 青神县|