当内容发生变化时,我想在next v3中过渡(从右边)一个动态组件。组件按要求工作,但我无法使转换工作。
<template>
<div>
<!--- other HTML -->
<transition name="left-to-right" mode="out-in" :key="currentScreenIndex">
<QuestionsWrap :question="questionScreens[currentScreenIndex]" :key="currentScreenIndex" />
</transition>
<!--- other HTML -->
</div>
</template>
<style scoped>
.left-to-right-enter-active {
transition: all 0.5s ease-out;
transform: translateX(-100%);
}
.left-to-right-leave-active {
transition: all 0.5s ease-out;
transform: translateX(100%);
}
</style>
首先,从Transition
中移除:key
。我认为这是完全停止渲染的原因。
然后,你要添加你的leave-to
和leave-from
css属性。
这个应该能奏效:
<template>
<div>
<!--- other HTML -->
<transition name="left-to-right" mode="out-in">
<QuestionsWrap :question="questionScreens[currentScreenIndex]" :key="currentScreenIndex" />
</transition>
<!--- other HTML -->
</div>
</template>
<style scoped>
.left-to-right-leave-active {
transition: all 0.5s ease-out;
}
.left-to-right-leave-to {
transform: translateX(100%);
}
.left-to-right-enter-active {
transition: all 0.5s ease-out;
}
.left-to-right-enter-from {
transform: translateX(-100%);
}
</style>
移除scoped
属性
<style>
.left-to-right-enter-active {
transition: all 0.5s ease-out;
transform: translateX(-100%);
}
.left-to-right-leave-active {
transition: all 0.5s ease-out;
transform: translateX(100%);
}
</style>
记住下一个匹配css类和作用域添加额外的id在编译。