使用vue來做一些小巧的動(dòng)畫效果是非常方便的,今天本人想使用vue的transition來完成一個(gè)滑動(dòng)過渡效果,這里和大家分享一下。
為朝陽等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及朝陽網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、朝陽網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
直接上源代碼:
<!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>
這里需要注意的是父級使用relative,子級使用absolute進(jìn)行定位,利用left值來進(jìn)行位置的控制移動(dòng)。這里如果使用transform的話,由于之前的div有一個(gè)漸變的消失過程,這個(gè)過程中他的位置一直有存在,造成了后面的div無法正確移動(dòng)到對應(yīng)位置,所以使用absolute更好。
實(shí)在不行可以使用transition的mode屬性,設(shè)置成out-in,先讓前者完成動(dòng)畫,讓占據(jù)的位置完全消失,使得下一個(gè)div可以正常運(yùn)動(dòng),不過這種方式只能先后完成動(dòng)畫,不能同時(shí)完成動(dòng)畫。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網(wǎng)站標(biāo)題:使用vue的transition完成滑動(dòng)過渡的示例代碼
本文URL:http://jinyejixie.com/article32/pggdpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)