JSFiddle - React, Tailwind, and code Playground
HTML
<div id='images-wrapper'>
<ul>
<li>
<img class='small' src='http://placehold.it/50/ff0000'/>
<img class='big' src='http://placehold.it/300/ff0000'/>
</li>
<li>
<img class='small' src='http://placehold.it/50/ff9900'/>
<img class='big' src='http://placehold.it/300/ff9900'/>
</li>
<li>
<img class='small' src='http://placehold.it/50/ff0099'/>
<img class='big' src='http://placehold.it/300/ff0099'/>
</li>
<li>
<img class='small' src='http://placehold.it/50/00ff00'/>
<img class='big' src='http://placehold.it/300/00ff00'/>
</li>
<li>
<img class='small' src='http://placehold.it/50/0000ff'/>
<img class='big' src='http://placehold.it/300/0000ff'/>
</li>
<li>
<img class='small' src='http://placehold.it/50/0099ff'/>
<img class='big' src='http://placehold.it/300/0099ff'/>
</li>
</ul>
<div class='preview-area'></div>
</div>
CSS
#images-wrapper {
position: relative; /* required ! */
min-height: 400px;
min-width: 530px;
/* just to make things visible */
outline: 1px solid red;
margin: 5px;
}
ul {
width: 150px;
float: left;
}
.big {
display: block;
position: absolute;
top: 54px;
right: 54px;
opacity: 0;
transition: opacity .5s;
}
li {
display: inline-block;
margin: 10px;
}
.preview-area {
width: 350px;
height: 350px;
border: 4px solid blue;
position: absolute;
top: 21px;
right: 21px;
}
li:hover .big {
opacity: 1;
}