使用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中input type=file上傳后@change事件無(wú)效的解決方案
這篇文章主要介紹了vue中input type=file上傳后@change事件無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
element日期選擇器el-date-picker樣式圖文詳解
最近寫(xiě)的項(xiàng)目里面有一個(gè)功能是日期選擇功能,第一反應(yīng)是使用element里面的el-date-picker組件,下面這篇文章主要給大家介紹了關(guān)于element日期選擇器el-date-picker樣式的相關(guān)資料,需要的朋友可以參考下2022-09-09
Vue scrollBehavior 滾動(dòng)行為實(shí)現(xiàn)后退頁(yè)面顯示在上次瀏覽的位置
這篇文章主要介紹了Vue scrollBehavior 滾動(dòng)行為實(shí)現(xiàn)后退頁(yè)面顯示在上次瀏覽的位置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
使用this.$nextTick()獲取不到數(shù)據(jù)更新后的this.$refs.xxx.及場(chǎng)景分析
今天遇到了這樣一個(gè)場(chǎng)景,在數(shù)據(jù)更新之后,使用this.$nextTick(()=>{console.log(this.$refs.xxx)}) 獲取不到改dom,但是用setTimeout能夠獲取到,在此記錄一下,感興趣的朋友跟隨小編一起看看吧2023-02-02
React和Vue中監(jiān)聽(tīng)變量變化的方法
這篇文章主要介紹了React和Vue中監(jiān)聽(tīng)變量變化的方法,本文通過(guò)一個(gè)場(chǎng)景,父組件傳遞子組件一個(gè)A參數(shù),子組件需要監(jiān)聽(tīng)A參數(shù)的變化轉(zhuǎn)換為state,具體內(nèi)容詳情大家跟隨小編一起通過(guò)本文學(xué)習(xí)吧2018-11-11
Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法
這篇文章主要介紹了Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
axios取消請(qǐng)求CancelToken的用法示例代碼
Axios提供了取消請(qǐng)求的功能,可以通過(guò)使用CancelToken來(lái)實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于axios取消請(qǐng)求CancelToken的用法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10

