JSFiddle - React, Tailwind, and code Playground
HTML
<script src='https://unpkg.com/vue'></script>
<div id='demo'>
<transition name="fade">
<span v-if="desc" class='single-image-span'>Your Desc</span>
</transition>
<div @mouseover="desc=!desc" @mouseout="desc=!desc">
<div class="single-image image" oncontextmenu="return false" onmousedown="return false">
<img src="https://vuejs.org/images/logo.png" alt="" />
</div>
<p class="image-title" ></p>
<p>Img Cat</p>
</div>
</div>
CSS
.image-title {
font-size: 2em;
font-weight: 300;
}
.single-image img {
width: 300px;
}
.single-image img {
background: rgba(55, 55, 55, 0.5);
opacity: 1;
transition: opacity 0.5s ease-in-out;
position: relative;
}
.single-image:hover {
opacity: .5;
}
.single-image-span {
position: absolute;
top: 50%;
left: 0;
width: 100%;
color: white;
background: rgb(0, 0, 0);
background: rgba(55, 55, 55, 0.5);
padding: .1em
}
.fade-enter-active,
.fade-leave-active {
transition: opacity 10s
}
.fade-enter,
.fade-leave-to
/* .fade-leave-active in <2.1.8 */
{
opacity: 0
}
JavaScript
new Vue({
el: '#demo',
data: {
desc: false,
isImageModalActive: false,
test: ''
},
mounted() {},
methods: {
}
})