Vue封装的过度与动画
在Vue中,可以使用<transition>
元素来包裹要应用过渡效果的元素。这里是一个简单的例子:
<template>
<div id="app">
<transition name="fade">
<div v-if="show" class="box">Hello World</div>
</transition>
<button @click="show = !show">Toggle</button>
</div>
</template>
<script>
export default {
data() {
return {
show: true
};
}
};
</script>
<style>
/* 定义过渡样式 */
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active for <=2.1.8 */ {
opacity: 0;
}
.box {
/* 添加一些样式以便看到效果 */
background-color: #eee;
padding: 20px;
margin-top: 10px;
}
</style>
在这个例子中,我们定义了一个简单的淡入淡出过渡效果。当show
的值改变时,包裹在<transition>
元素内的<div>
会有一个淡出或淡入的效果。通过CSS定义了两个样式阶段:.fade-enter-active
和.fade-leave-active
用于指定过渡的状态,而.fade-enter
和.fade-leave-to
定义了初始和结束状态的不透明度。
点击按钮会触发show
值的切换,从而触发过渡效果。
评论已关闭