我正在寻找一种解决方案来在网格中的路线之间制作动画。我想创建从左到右的全宽和全高叠加动画。当覆盖全宽时,它应该替换插槽中的内容。
我想做的是
<div class="overlay" :class="{ 'overlay--open': overlayOpen }"></div>
<transition
appear
v-on:before-appear="beforeAppear"
v-on:appear="appear"
v-on:after-appear="afterAppear"
>
<main>
<slot/>
</main>
</transition>
并在方法中
methods: {
beforeAppear: function (el) {
this.overlayOpen = true
}
}
风格
.overlay{
position: fixed;
width: 100%;
height: 100vh;
top: 0;
left: 0;
background-color: #0c0c0c;
z-index: 99999;
transition: all 500ms;
transform-origin: left;
transform: scaleX(0);
&--open{
animation: open 1s;
}
@keyframes open {
0% {
transform: scaleX(0);
}
50% {
transform: scaleX(1);
}
100% {
transform: scaleX(0);
}
它几乎奏效了,但我认为这不是路线转换的好习惯。如果您知道如何制作它,我将不胜感激。谢谢