使用vue的transition完成滑動(dòng)過(guò)渡的示例代碼
使用vue來(lái)做一些小巧的動(dòng)畫(huà)效果是非常方便的,今天本人想使用vue的transition來(lái)完成一個(gè)滑動(dòng)過(guò)渡效果,這里和大家分享一下。
直接上源代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue滑動(dòng)效果</title> <style> .d { position: absolute; border: 1px solid red; width: 30px; height: 30px; } @keyframes show { 0% { opacity: 0; left: 32px; } 100% { opacity: 1; left: 0; } } @keyframes hide { 0% { opacity: 1; left: 0; } 100% { opacity: 0; left: -32px; } } .show-enter-active { animation: show 1.2s; } .show-leave-active { animation: hide 1.2s; } .show-enter, .show-leave-to { opacity: 0; } .wrap { position: relative; width: 32px; height: 32px; } </style> <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script> </head> <body> <div id="app"> <p>{{ message }}</p> <div class="wrap"> <transition name="show"> <div class="d" v-for="item in list" :key="item.id" v-if="count === item.id"> {{ item.text }} </div> </transition> </div> <button @click="add">add</button> </div> <script> new Vue({ el: '#app', data () { return { message: 'Hello Vue.js!', count: 0, list: [ {id: 0, text: 'aaa'}, {id: 1, text: 'bbb'}, {id: 2, text: 'ccc'} ] } }, methods: { add: function () { if (this.count < this.list.length - 1) { this.count += 1; } else { this.count = 0; } } } }) </script> </body> </html>
這里需要注意的是父級(jí)使用relative,子級(jí)使用absolute進(jìn)行定位,利用left值來(lái)進(jìn)行位置的控制移動(dòng)。這里如果使用transform的話,由于之前的div有一個(gè)漸變的消失過(guò)程,這個(gè)過(guò)程中他的位置一直有存在,造成了后面的div無(wú)法正確移動(dòng)到對(duì)應(yīng)位置,所以使用absolute更好。
實(shí)在不行可以使用transition的mode屬性,設(shè)置成out-in,先讓前者完成動(dòng)畫(huà),讓占據(jù)的位置完全消失,使得下一個(gè)div可以正常運(yùn)動(dòng),不過(guò)這種方式只能先后完成動(dòng)畫(huà),不能同時(shí)完成動(dòng)畫(huà)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue中的事件觸發(fā)(emit)及監(jiān)聽(tīng)(on)問(wèn)題
這篇文章主要介紹了vue中的事件觸發(fā)(emit)及監(jiān)聽(tīng)(on)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10如何在ElementUI的上傳組件el-upload中設(shè)置header
這篇文章主要介紹了如何在ElementUI的上傳組件el-upload中設(shè)置header,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼
這篇文章主要介紹了Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn)
這篇文章主要介紹了vue大型項(xiàng)目之分模塊運(yùn)行/打包的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09手拉手教你如何處理vue項(xiàng)目中的錯(cuò)誤
在項(xiàng)目開(kāi)發(fā)中經(jīng)常遇到各種報(bào)錯(cuò),每次總是通過(guò)這樣或那樣的辦法解決掉,這篇文章主要給大家介紹了關(guān)于如何處理vue項(xiàng)目中錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2022-06-06vue路由守衛(wèi),限制前端頁(yè)面訪問(wèn)權(quán)限的例子
今天小編就為大家分享一篇vue路由守衛(wèi),限制前端頁(yè)面訪問(wèn)權(quán)限的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11