JSFiddle - React, Tailwind, and code Playground
by tema1302
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.min.js"></script>
<div id="app">
<button
v-for="(n, i) in images"
@click="image = i"
:disabled="image === i"
>Trump #{{ i }}</button>
<div>
<transition name="imagerrr" mode="out-in">
<img :key="image" :src="images[image]">
</transition>
</div>
</div>
CSS
img {
width: 300px;
}
.imagerrr-enter-active,
.imagerrr-leave-active {
transition: opacity .3s;
}
.imagerrr-enter,
.imagerrr-leave-to {
opacity: 0;
}
JavaScript
new Vue({
el: '#app',
data: {
image: 0,
images: [
'https://specials-images.forbesimg.com/imageserve/5babef3da7ea4342a948c024/416x416.jpg?background=000000&cropX1=1318&cropX2=2825&cropY1=226&cropY2=1732',
'https://pixel.nymag.com/imgs/daily/intelligencer/2018/08/24/24-donald-trump-2.w700.h700.jpg',
'https://pixel.nymag.com/imgs/daily/intelligencer/2018/11/29/29-trump-rich.w700.h700.jpg',
],
},
});