let gradientOverlay = document.getElementById('gradientOverlay');
let gradient = document.getElementsByClassName('gradient');
let red = document.getElementById('red');
red.addEventListener("mouseenter", function(event) {
gradientOverlay.classList.add('redG');
gradientOverlay.classList.add('gradient');
});
red.addEventListener("mouseleave", function(event) {
gradientOverlay.classList.remove('redG');
gradientOverlay.classList.remove('gradient');
});
let blue = document.getElementById('blue');
blue.addEventListener("mouseenter", function(event) {
gradientOverlay.classList.add('blueG');
gradientOverlay.classList.add('gradient');
});
blue.addEventListener("mouseleave", function(event) {
gradientOverlay.classList.remove('blueG');
gradientOverlay.classList.remove('gradient');
});
let green = document.getElementById('green');
green.addEventListener("mouseenter", function(event) {
gradientOverlay.classList.add('greenG');
gradientOverlay.classList.add('gradient');
});
green.addEventListener("mouseleave", function(event) {
gradientOverlay.classList.remove('greenG');
gradientOverlay.classList.remove('gradient');
});
let black = document.getElementById('black');
black.addEventListener("mouseenter", function(event) {
gradientOverlay.classList.add('blackG');
gradientOverlay.classList.add('gradient');
});
black.addEventListener("mouseleave", function(event) {
gradientOverlay.classList.remove('blackG');
gradientOverlay.classList.remove('gradient');
});
let pink = document.getElementById('pink');
pink.addEventListener("mouseenter", function(event) {
gradientOverlay.classList.add('pinkG');
gradientOverlay.classList.add('gradient');
});
pink.addEventListener("mouseleave", function(event) {
gradientOverlay.classList.remove('pinkG');
gradientOverlay.classList.remove('gradient');
});
let brown = document.getElementById('brown');
brown.addEventListener("mouseenter", function(event) {
gradientOverlay.classList.add('brownG');
gradientOverlay.classList.add('gradient');
});
brown.addEventListener("mouseleave", function(event) {
gradientOverlay.classList.remove('brownG');
gradientOverlay.classList.remove('gradient');
});
:root {
--red: #ff5656f8;
--blue: #00ffea;
--green: #6cff7f;
--black: #353535;
--pink: #ff2fff;
--brown: #8b0000;
--backgroundTopBlue: #0cf0de;
}
body {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
margin: 0;
padding: 0;
height: 100vh;
}
.mainContainer {
display: flex;
flex-wrap: wrap;
flex-direction: row;
align-content: center;
justify-content: center;
padding: 0px;
margin: 0 auto;
z-index: 2;
width: 940px;
height: 240px;
}
.main {
display: flex;
background-image: linear-gradient(to bottom, var(--backgroundTopBlue), blue);
padding: 0px;
margin: 0 auto;
border-radius: 10px;
z-index: 0;
width: 940px;
height: 240px;
}
.childContainer {
display: flex;
align-items: center;
justify-items: center;
padding: 0px;
margin: 0 auto;
z-index: 1;
}
.gradientOverlay {
display: block;
position: absolute;
margin: 0 auto;
width: 940px;
height: 240px;
background-image: linear-gradient(to bottom, var(--backgroundTopBlue), blue);
border-radius: 10px;
opacity: 0;
z-index: 0;
}
.child {
width: 100px;
height: 100px;
margin: 20px;
z-index: 2;
}
#red {
background-color: var(--red);
}
#blue {
background-color: var(--blue);
}
#green {
background-color: var(--green);
}
#black {
background-color: var(--black);
}
#pink {
background-color: var(--pink);
}
#brown {
background-color: var(--brown);
}
.redG {
display: flex;
background-image: linear-gradient(to bottom, var(--red), blue);
padding: 0px;
opacity: 0;
border-radius: 10px;
z-index: 1;
}
.blueG {
display: flex;
background-image: linear-gradient(to bottom, var(--blue), blue);
padding: 0px;
opacity: 0;
border-radius: 10px;
z-index: 1;
}
.greenG {
display: flex;
background-image: linear-gradient(to bottom, var(--green), blue);
padding: 0px;
opacity: 0;
border-radius: 10px;
z-index: 1;
}
.blackG {
display: flex;
background-image: linear-gradient(to bottom, var(--black), blue);
padding: 0px;
opacity: 0;
border-radius: 10px;
z-index: 1;
}
.pinkG {
display: flex;
background-image: linear-gradient(to bottom, var(--pink), blue);
padding: 0px;
opacity: 0;
border-radius: 10px;
z-index: 1;
}
.brownG {
display: flex;
background-image: linear-gradient(to bottom, var(--brown), blue);
padding: 0px;
opacity: 0;
border-radius: 10px;
z-index: 1;
}
.gradient {
animation: gradient 1s ease-in forwards;
}
@keyframes gradient {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.gradientOut {
animation: gradientOut 1s ease-out forwards;
}
@keyframes gradientOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="mainContainer">
<div class="main" id="main">
<div class="gradientOverlay" id="gradientOverlay">
</div>
<div class="childContainer">
<div class="child" id="red"></div>
<div class="child" id="blue"></div>
<div class="child" id="green"></div>
<div class="child" id="black"></div>
<div class="child" id="pink"></div>
<div class="child" id="brown"></div>
</div>
</div>
</div>
</body>
</html>