JSFiddle - React, Tailwind, and code Playground
by tema1302
HTML
<div class="wrapper">
<div class="block">
<div class="el-1 el-hover"></div>
<div class="el-2 el-hover"></div>
<div class="block__el">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nihil molestias laborum in dignissimos laboriosam voluptatem mollitia eligendi dolore commodi cupiditate, vitae provident illum amet quidem doloremque quas nobis nulla ullam.
<div class="el-3 el-hover"></div>
<div class="el-4 el-hover"></div>
</div>
</div>
<div class="block">
<div class="el-1 el-hover"></div>
<div class="el-2 el-hover"></div>
<div class="block__el">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nihil molestias laborum in dignissimos laboriosam voluptatem mollitia eligendi dolore commodi cupiditate, vitae provident illum amet quidem doloremque quas nobis nulla ullam.
<div class="el-3 el-hover"></div>
<div class="el-4 el-hover"></div>
</div>
</div>
<div class="block">
<div class="el-1 el-hover"></div>
<div class="el-2 el-hover"></div>
<div class="block__el">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Nihil molestias laborum in dignissimos laboriosam voluptatem mollitia eligendi dolore commodi cupiditate, vitae provident illum amet quidem doloremque quas nobis nulla ullam.
<div class="el-3 el-hover"></div>
<div class="el-4 el-hover"></div>
</div>
</div>
</div>
SCSS
.wrapper {
padding: 20px;
background: green;
display: flex;
justify-content: space-around;
}
.block {
z-index: 2;
width: 200px;
height: auto;
transition: all 0.5s ease;
display: inline-block;
margin-right: 10px;
position: relative;
&__el {
transition: all 0.5s ease;
background: #ffffff;
box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.1);
border-radius: 20px;
padding: 10px 20px;
}
.el-hover {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: all 0.5s ease;
opacity: 0;
display: block;
background: yellow;
width: 50px;
height: 50px;
&.el-1 {
z-index: -1;
}
&.el-2 {
z-index: -1;
}
&.el-3 {
z-index: -1;
}
&.el-4 {
z-index: -1;
}
}
&:hover {
transform: scale(1.05);
.el-hover {
opacity: 1;
&.el-1 {
top: 10%;
left: -2%;
}
&.el-2 {
top: 90%;
left: 100%;
}
&.el-3 {
top: 10%;
left: 90%;
z-index: 0;
}
&.el-4 {
top: 90%;
left: 6%;
z-index: 0;
}
}
}
}