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

vue實現(xiàn)翻牌動畫

 更新時間:2022年04月20日 11:49:29   作者:niuyueyang  
這篇文章主要為大家詳細介紹了vue實現(xiàn)翻牌動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)翻牌動畫的具體代碼,供大家參考,具體內(nèi)容如下

應(yīng)用場景

常用于大屏訂單數(shù)量展示

原理

  • 利用css writing-mode: vertical-rl 使數(shù)字垂直排列
  • 利用css transform 使數(shù)字滾動

實現(xiàn)思路

  • 根據(jù)css先讓數(shù)字垂直排列,總共設(shè)置8列
  • 根據(jù)組件傳遞的數(shù)值,如果不滿8位,遞歸補零
  • 補零之后,循環(huán)根據(jù) translate(-50%, -${numberArr[index] * 10}%,查看動畫
<template>
? ? <div class="chartNum">
? ? ? ? <div class="box-item">
? ? ? ? ? ? <li
? ? ? ? ? ? ? ? :class="{'number-item':!isNaN(item),'mark-item':!isNaN(item)}"
? ? ? ? ? ? ? ? v-for="(item,index) in orderNum"
? ? ? ? ? ? ? ? :key="index">
? ? ? ? ? ? ? ? <span v-if="!isNaN(item)">
? ? ? ? ? ? ? ? ? ? <i ref="numberItem">0123456789</i>
? ? ? ? ? ? ? ? </span>
? ? ? ? ? ? ? ? <span class="comma" v-else>{{item}}</span>
? ? ? ? ? ? </li>
? ? ? ? </div>
? ? </div>
</template>

<script>
? ? export default {
? ? ? ? name: "hChartNum",
? ? ? ? props:{
? ? ? ? ? num:{
? ? ? ? ? ? ? type:Number,
? ? ? ? ? ? ? default:1123
? ? ? ? ? }
? ? ? ? },
? ? ? ? data() {
? ? ? ? ? ? return {
? ? ? ? ? ? ? ? orderNum: ['0', '0', '0', '0', '0', '0', '0', '0'], // 默認訂單總數(shù)
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? mounted(){
? ? ? ? ? ? setTimeout(() => {
? ? ? ? ? ? ? ? this.toOrderNum(this.num) // 這里輸入數(shù)字即可調(diào)用
? ? ? ? ? ? }, 500);
? ? ? ? },
? ? ? ? methods:{
? ? ? ? ? ? // 設(shè)置文字滾動
? ? ? ? ? ? setNumberTransform(){
? ? ? ? ? ? ? ? const numberItems = this.$refs.numberItem // 拿到數(shù)字的ref,計算元素數(shù)量
? ? ? ? ? ? ? ? const numberArr = this.orderNum.filter(item => !isNaN(item))
? ? ? ? ? ? ? ? // 結(jié)合css,讓文字滾動起來
? ? ? ? ? ? ? ? for (let index = 0; index < numberItems.length; index++) {
? ? ? ? ? ? ? ? ? ? const elem = numberItems[index];
? ? ? ? ? ? ? ? ? ? elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`
? ? ? ? ? ? ? ? }
? ? ? ? ? ? },


? ? ? ? ? ? // 處理訂單數(shù)字
? ? ? ? ? ? toOrderNum(num){
? ? ? ? ? ? ? ? num = num.toString();
? ? ? ? ? ? ? ? if(num.length < 8){
? ? ? ? ? ? ? ? ? ? num = '0' + num; // 未滿8位,補零
? ? ? ? ? ? ? ? ? ? this.toOrderNum(num); // 遞歸添加"0"補位
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else if(num.length == 8){
? ? ? ? ? ? ? ? ? ? this.orderNum = num.split('')
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else{
? ? ? ? ? ? ? ? ? ? // 數(shù)據(jù)量超過8位
? ? ? ? ? ? ? ? ? ? this.$message.error('數(shù)據(jù)量過大');
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? this.setNumberTransform();
? ? ? ? ? ? }
? ? ? ? }
? ? }
</script>

<style scoped lang="less">
? ? .box-item{
? ? ? ? position: relative;
? ? ? ? height: 100px;
? ? ? ? font-size: 54px;
? ? ? ? line-height: 41px;
? ? ? ? text-align: center;
? ? ? ? list-style: none;
? ? ? ? color: #2D7CFF;
? ? ? ? writing-mode: vertical-lr;
? ? ? ? text-orientation: upright;

? ? ? ? -moz-user-select: none;
? ? ? ? -webkit-user-select: none; /*webkit瀏覽器*/
? ? ? ? -ms-user-select: none; /*IE10*/
? ? ? ? -khtml-user-select: none; /*早期瀏覽器*/
? ? ? ? user-select: none;
? ? }

? ? /*默認逗號設(shè)置*/
? ? .number-item{
? ? ? ? width: 10px;
? ? ? ? height: 100px;
? ? ? ? margin-right: 5px;
? ? ? ? line-height: 10px;
? ? ? ? font-size: 48px;
? ? ? ? position: relative;
? ? ? ? & > span{
? ? ? ? ? ? position: absolute;
? ? ? ? ? ? width: 100%;
? ? ? ? ? ? bottom: 0;
? ? ? ? ? ? writing-mode: vertical-rl;
? ? ? ? ? ? text-orientation: upright;
? ? ? ? ? }
? ? }

? ? /*滾動數(shù)字設(shè)置*/
? ? .number-item {
? ? ? ? width: 41px;
? ? ? ? height: 75px;
? ? ? ? background: url(./img/bg.jpg) no-repeat center center;
? ? ? ? background-size: 100% 100%;
? ? ? ? list-style: none;
? ? ? ? margin-right: 5px;
? ? ? ? border-radius:4px;
? ? ? ? border:1px solid rgba(221,221,221,1);
? ? ? ? & > span{
? ? ? ? ? ? position: relative;
? ? ? ? ? ? display: inline-block;
? ? ? ? ? ? margin-right: 10px;
? ? ? ? ? ? width: 100%;
? ? ? ? ? ? height: 100%;
? ? ? ? ? ? writing-mode: vertical-rl;
? ? ? ? ? ? text-orientation: upright;
? ? ? ? ? ? overflow: hidden;
? ? ? ? ? ? & > i {
? ? ? ? ? ? ? ? font-style: normal;
? ? ? ? ? ? ? ? position: absolute;
? ? ? ? ? ? ? ? top:11px;
? ? ? ? ? ? ? ? left: 50%;
? ? ? ? ? ? ? ? transform: translate(-50%,0);
? ? ? ? ? ? ? ? transition: transform 1s ease-in-out;
? ? ? ? ? ? ? ? letter-spacing: 10px;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? .number-item:last-child {
? ? ? ? margin-right: 0;
? ? }
</style>

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

相關(guān)文章

  • 詳細講解如何創(chuàng)建, 發(fā)布自己的 Vue UI 組件庫

    詳細講解如何創(chuàng)建, 發(fā)布自己的 Vue UI 組件庫

    當我們自己開發(fā)了一個 _UI Component_, 需要在多個項目中使用的時候呢? 我們首先想到的可能是直接復(fù)制一份過去對嗎?我們?yōu)槭裁床话l(fā)布一個 UI 組件庫給自己用呢?下面小編和大家來一起學(xué)習(xí)下吧
    2019-05-05
  • vue如何實時往數(shù)組里追加數(shù)據(jù)

    vue如何實時往數(shù)組里追加數(shù)據(jù)

    這篇文章主要介紹了vue如何實時往數(shù)組里追加數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue使用echarts實現(xiàn)折線圖

    vue使用echarts實現(xiàn)折線圖

    這篇文章主要為大家詳細介紹了vue使用echarts實現(xiàn)折線圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue常用的幾個指令附完整案例

    Vue常用的幾個指令附完整案例

    越來越多的人在用Vue,剛開始接觸vue的話常接觸的指令就幾個,統(tǒng)一歸納一下。感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • 項目部署后前端vue代理失效問題解決辦法

    項目部署后前端vue代理失效問題解決辦法

    這篇文章主要給大家介紹了關(guān)于項目部署后前端vue代理失效問題的解決辦法,文中通過圖文以及代碼示例將解決的辦法介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-02-02
  • vue ref如何獲取子組件屬性值

    vue ref如何獲取子組件屬性值

    這篇文章主要介紹了vue ref如何獲取子組件屬性值。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vite?vue3多頁面入口打包以及部署踩坑實戰(zhàn)

    Vite?vue3多頁面入口打包以及部署踩坑實戰(zhàn)

    因為我們公司的項目是多頁面應(yīng)用,不同于傳統(tǒng)單頁面應(yīng)用,一個包就可以了,下面這篇文章主要給大家介紹了關(guān)于Vite?vue3多頁面入口打包以及部署踩坑的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • vue路由跳轉(zhuǎn)到新頁面實現(xiàn)置頂

    vue路由跳轉(zhuǎn)到新頁面實現(xiàn)置頂

    這篇文章主要介紹了vue路由跳轉(zhuǎn)到新頁面實現(xiàn)置頂問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue3組合式API中使用forwardRef()函數(shù)

    Vue3組合式API中使用forwardRef()函數(shù)

    本文主要介紹了Vue3組合式API中使用forwardRef()函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Vue.js directive自定義指令詳解

    Vue.js directive自定義指令詳解

    這篇文章主要介紹了Vue.js directive自定義指令詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

大方县| 丰都县| 阿坝| 疏附县| 新巴尔虎左旗| 建始县| 新野县| 神农架林区| 博兴县| 吉水县| 漳平市| 长葛市| 莱芜市| 巴林右旗| 乐昌市| 尉犁县| 鱼台县| 溧阳市| 偏关县| 潞西市| 四会市| 友谊县| 东城区| 渭南市| 高州市| 武强县| 镇安县| 仁寿县| 奈曼旗| 淮阳县| 类乌齐县| 武鸣县| 黔西| 新兴县| 手游| 云浮市| 琼中| 金乡县| 阿坝| 康保县| 洪雅县|