vue+animation實(shí)現(xiàn)翻頁(yè)動(dòng)畫(huà)
本文實(shí)例為大家分享了vue+animation實(shí)現(xiàn)翻頁(yè)動(dòng)畫(huà)展示的具體代碼,供大家參考,具體內(nèi)容如下
前端在做數(shù)據(jù)展示的時(shí)候,可能提留頁(yè)面時(shí)間較長(zhǎng),導(dǎo)致數(shù)據(jù)不能及時(shí)更新,你可以定時(shí)更新,也可以做一個(gè)假數(shù)據(jù) 給用戶視覺(jué)上的體驗(yàn),接下來(lái)就是第二種,假數(shù)據(jù),它用了C3 animation 實(shí)現(xiàn)了一個(gè)翻頁(yè)動(dòng)畫(huà)。
第一種是單獨(dú)運(yùn)動(dòng)
<template> <div> <div> <ul> <li v-for="(item,i) in NumberList" :key="i" ><a :class="[item.isMove ? 'move-an' : '']">{{item.num}}</a></li> </ul> </div> </div> </template> <script> export default { data(){ return { NumberList:'', Number:108847, } }, mounted(){ let arr = String(this.Number).split('') this.NumberList=[] arr.forEach(item => { const model = {}; model.isMove = false; model.num = item; this.NumberList.push(model); }); setInterval(() =>{ this.Number=this.Number+1; let data = String(this.Number); let arr = data.split(""); arr.forEach((item, index) => { if (item !== this.NumberList[index].num) { this.NumberList[index].isMove = true } }); }, 10000) }, watch: { Number() { setTimeout(() =>{ let data = String(this.Number); let arr = data.split(""); this.NumberList.forEach((item, index) => { this.NumberList[index].num = arr[index]; }); }, 500); setTimeout(() =>{ this.NumberList.forEach((item, index) => { this.NumberList[index].isMove = false }); }, 1000); } }, methods:{ } } </script> <style lang="" scoped> h1{ text-align:center; } ul{ display: flex; } li{ list-style: none; width:50px;height:80px; background: red; margin-right: 10px; text-align: center; line-height: 80px; font-size:20px; color:#ffffff; position: relative; } a { position: absolute; top: 3px; color: #ffffff; } .move-an { animation:mymove 1s infinite linear; -webkit-animation:mymove 1s infinite linear; } @keyframes mymove { 0% {top: 3px;} 25% {top: -40px;} 48% {top: -80px;} 49% {top: -80px; opacity: 0} 50% {top: 80px;} 51% {top: 80px;opacity: 1; } 100% {top: 3px;} } </style>
第二種是整體運(yùn)動(dòng) 0-9循環(huán)一邊
<template> <div class="main"> <div v-for="(item,i) in NumberList" class="move-num" :key="i"> <div> <div style="visibility:hidden;position: static"> <span v-for="(list, i) in item.num" :key="i" class="num-move">{{list}}</span> </div> <a :class="[isMove === true ? 'move-an' : '']"> <span v-for="(list, i) in item.num" :key="i" class="num-move">{{list}}</span> </a> </div> </div> </div> </template> <script> export default { data(){ return { isMove:false, NumberList:[], Number:108847, numModels: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], } }, mounted(){ this.handdleDate() setInterval(() => { this.handdleDate() }, 10000) }, methods:{ handdleDate(){ let arr = String(this.Number).split('') this.NumberList=[] arr.forEach(item => { const model = {} const baseArr = JSON.parse(JSON.stringify(this.numModels)) model.isMove = false; for (let i = 0; i < parseInt(item) + 1; i++) { baseArr.push(i) } model.num = baseArr; this.NumberList.push(model); this.isMove = true; setTimeout(() => { this.isMove = false }, 3000) }); } } } </script> <style lang="" scoped> .main{ display: flex; } .move-num{ width:30px;height:40px; background:red; overflow: hidden; margin-right:10px; line-height: 40px; color:#fff; position: relative; overflow: hidden; } .move-num div { position: absolute; width: 100%; height: auto; } .move-num div a { color: #ffffff; display: block; position: absolute; left: 10px; bottom: calc(100% - 45px); } .num-move { width: 100%; display: block; margin: 3px 0; } .move-an { animation:mymove 3s infinite linear forwards; -webkit-animation:mymove 3s infinite linear forwards; } .num-move { width: 100%; display: block; margin: 3px 0; } @keyframes mymove { 0% {bottom: 3px;} 100% {bottom: calc(100% - 40px)} } </style>
關(guān)于vue.js組件的教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue 翻頁(yè)組件vue-flip-page效果
- vue 實(shí)現(xiàn)滾動(dòng)到底部翻頁(yè)效果(pc端)
- vue-awesome-swiper 基于vue實(shí)現(xiàn)h5滑動(dòng)翻頁(yè)效果【推薦】
- Vue實(shí)現(xiàn)簡(jiǎn)易翻頁(yè)效果源碼分享
- Vue2.0+ElementUI實(shí)現(xiàn)表格翻頁(yè)的實(shí)例
- 基于Vue2.0+ElementUI實(shí)現(xiàn)表格翻頁(yè)功能
- vue router自動(dòng)判斷左右翻頁(yè)轉(zhuǎn)場(chǎng)動(dòng)畫(huà)效果
- 基于vue實(shí)現(xiàn)分頁(yè)/翻頁(yè)組件paginator示例
- 基于Vuejs框架實(shí)現(xiàn)翻頁(yè)組件
- vue實(shí)現(xiàn)數(shù)字翻頁(yè)動(dòng)畫(huà)
相關(guān)文章
關(guān)于nuxt?store中保存localstorage的問(wèn)題
這篇文章主要介紹了關(guān)于nuxt?store中保存localstorage的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Vue Element UI 表單自定義校驗(yàn)規(guī)則及使用
這篇文章主要介紹了Vue Element UI 表單自定義效驗(yàn)規(guī)則及使用,文中通過(guò)代碼介紹了常見(jiàn)表單效驗(yàn)規(guī)則,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02詳解Vue中的render:?h?=>?h(App)示例代碼
這篇文章主要介紹了Vue中的render:?h?=>?h(App),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09vue中的局部過(guò)濾器和全局過(guò)濾器代碼實(shí)操
這篇文章主要分享的是vue中的局部過(guò)濾器和全局過(guò)濾器代碼實(shí)操,下面文章主要以代碼展現(xiàn),具有一的的知識(shí)參考性,需要的小伙伴可以參考一下2022-02-02關(guān)于vue3.0使用axios報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了vue3.0使用axios報(bào)錯(cuò)問(wèn)題記錄,vue-cli3.0安裝插件的時(shí)候要注意區(qū)分vue-cli2.0的命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08基于 Vue.js 之 iView UI 框架非工程化實(shí)踐記錄(推薦)
為了快速體驗(yàn) MVVM 模式,我選擇了非工程化方式來(lái)起步,并選擇使用 Vue.js,以及基于它構(gòu)建的 iView UI 框架。本文給大家分享基于 Vue.js 之 iView UI 框架非工程化實(shí)踐記錄,需要的朋友參考下吧2017-11-11Element?plus中el-input框回車觸發(fā)頁(yè)面刷新問(wèn)題以及解決辦法
在el-form表單組件中el-input組件輸入內(nèi)容后按下Enter鍵刷新了整個(gè)頁(yè)面,下面這篇文章主要給大家介紹了關(guān)于Element?plus中el-input框回車觸發(fā)頁(yè)面刷新問(wèn)題以及解決辦法,需要的朋友可以參考下2024-03-03