一、淡入淡出动画效果

二、代码实现
注意事项:要保证key的唯一性
<template>
<div class="beenDone">
<transition name="slide-fade">
<div
:class="sumShow === true ? `box_echart` : `box_tree`"
:key="keyNum"
></div>
</transition>
</div>
</template>
<script>
export default {
data() {
return {
sumShow: true,
keyNum: 1,
};
},
mounted() {
setInterval(() => {
this.sumShow = !this.sumShow;
this.keyNum = Date.parse(new Date())
}, 3000);
},
};
</script>
<style lang="less" scoped>
.beenDone {
border: 1px solid #ccc;
border-radius: 5px;
width: 440px;
height: 400px;
overflow: hidden;
.box_echart {
background: url("../images/box_echart.svg") no-repeat;
background-size: 100% 100%;
width: 440px;
height: 400px;
}
.box_tree {
background: url("../images/box_tree.svg") no-repeat;
background-size: 100% 100%;
width: 440px;
height: 400px;
}
.slide-fade-enter-active {
transition: all 0.5s cubic-bezier(1, 0.5, 0.8, 1);
}
.slide-fade-leave-active {
transition: all 0.5s cubic-bezier(1, 0.5, 0.8, 1);
}
.slide-fade-enter,
.slide-fade-leave-to {
opacity: 0;
}
}
</style>
三、上下切换动画效果

四、代码,只需要将上面的css里面重复样式替换如下
.slide-fade-enter-active {
transition: all 0.5s ease;
}
.slide-fade-leave-active {
transition: all 0.5s ease;
}
.slide-fade-enter,
.slide-fade-leave-to {
transform: translateY(10%);
opacity: 0;
}
五、如果有左右切换,只需要改变 translateX即可
|