日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

使用vue的transition完成滑动过渡

發布時間:2025/3/18 vue 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用vue的transition完成滑动过渡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用vue來做一些小巧的動畫效果是非常方便的,今天本人想使用vue的transition來完成一個滑動過渡效果,這里和大家分享一下。

直接上源代碼:

<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>Vue滑動效果</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進行定位,利用left值來進行位置的控制移動。這里如果使用transform的話,由于之前的div有一個漸變的消失過程,這個過程中他的位置一直有存在,造成了后面的div無法正確移動到對應位置,所以使用absolute更好。 實在不行可以使用transition的mode屬性,設置成out-in,先讓前者完成動畫,讓占據的位置完全消失,使得下一個div可以正常運動,不過這種方式只能先后完成動畫,不能同時完成動畫。

轉載于:https://juejin.im/post/5b2e54bde51d4558da1ada43

總結

以上是生活随笔為你收集整理的使用vue的transition完成滑动过渡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。