is not too cumbersome. The title has been stated very clearly. Go directly to the code. The App.vue is as follows:
<template>
<div id="app">
<transition :name="transitionName">
<router-view class="Router"></router-view>
</transition>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
transitionName: "slide-top"
}
}
</script>
<style>
*{margin: 0; padding: 0;}
body{
overflow: hidden;
}
-sharpapp {
font-family: "", sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: -sharpfff;
font-size: 14px;
}
.Router {
position: absolute;
-moz-transition: all 1.0s linear 0s;
-webkit-transition: all 1.0s linear 0s;
-o-transition: all 1.0s linear 0s;
-ms-transition: all 1.0s linear 0s;
transition: all 1.0s linear 0s;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.slide-top-enter{
opacity: 1;
-webkit-transform: translate(0, -100%);
transform: translate(0, -100%);
}
.slide-top-leave-active {
opacity: 1;
-webkit-transform: translate(0, 100%);
transform: translate(0, 100%);
}
.slide-bottom-enter{
opacity: 1;
-webkit-transform: translate(0, 100%);
transform: translate(0, 100%);
}
.slide-bottom-leave-active {
opacity: 1;
-webkit-transform: translate(0, -100%);
transform: translate(0, -100%);
}
</style>
the effect is very good, the only drawback is that the middle white line, if the animation mode is changed to ease, white gap is sometimes wider, a little affect the experience, I do not know what I set wrong, resulting in this situation? Do you have any prawns who can answer questions for me?