JSFiddle - React, Tailwind, and code Playground
by kurotanshi
HTML
<script src="https://unpkg.com/[email protected]/dist/vue.global.js"></script>
<div id="app">
<div>
<!-- slide -->
<div class="wrap">
<transition name="slide">
<div class="block" v-show="isShow">HELLO VUE<br>Slide</div>
</transition>
</div>
<!-- fade -->
<div class="wrap">
<transition name="fade">
<div class="block" v-show="isShow">HELLO VUE<br>Fade</div>
</transition>
</div>
</div>
<button @click="isShow =! isShow">Toggle</button>
</div>
SCSS
#app {
position: relative;
display: block;
padding: 1rem;
font-size: 1rem;
> div {
display: block;
overflow: hidden;
margin-bottom: 1rem;
height: 120px;
}
}
button {
font-size: 1rem;
}
.wrap {
display: block;
width: 150px;
height: 100px;
overflow: hidden;
float: left;
margin-right: 1.5rem;
}
.block {
display: block;
width: 150px;
height: 100px;
padding: 20px 0;
text-align: center;
line-height: 1.75;
background-color: #0f0;
}
.slide-leave-active,
.slide-enter-active {
transition: all .9s ease;
}
.slide-enter-from {
transform: translateX(-100%);
}
.slide-leave-to {
transform: translateX(100%);
}
.fade-enter-active,
.fade-leave-active {
transition: opacity 1s;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
}
.fade-enter-to,
.fade-leave-from {
opacity: 1;
}
JavaScript
const app = Vue.createApp({
data() {
return {
isShow: true
}
}
});
app.mount('#app');