Sliding hover
Menu
CSS
+ ANIMATION :
+ Description :
This desktop menu has a sliding effect on hover. It is made with only CSS.
In order to achieve them you will find below the various codes to be used. Despite using Bricks builder, I tried to list up all the necessary steps to complete the menu to be the most universal as much as possible. Therefore I am close to what you will find in any IDE. For Bricks builder, please follow the HTML/CSS structure so you can add-up divs and give them CSS instead of putting them into the cod-element in order to avoid FOUC as the code-element is loaded lastly within the page priority list.
For CSS, please note that I am considering that you are using a builder hence: no margin/padding/ul/li reset has been applied and the font is not defined.
HTML:
<div class="box-section">
<ul class="box-ctn">
<li class="box">
<a class="link-menu" href="#">MENU A</a>
</li>
<li class="box">
<a class="link-menu" href="#">MENU B</a>
</li>
<li class="box">
<a class="link-menu" href="#">MENU C</a>
</li>
<li class="box">
<a class="link-menu" href="#">MENU D</a>
</li>
<div class="box-slide"></div>
</ul>
</div>
CSS:
:root {
--li-items: 4; /*enter the number of menu li items*/
}
.box-section {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
min-height: 100vh;
width: 100%;
z-index: 0;
background-color: #202020;
}
.box-ctn {
display: flex;
position: relative;
flex-direction: row;
position: relative;
overflow: hidden;
width: 30%;
height: 85px;
border-radius: 50px;
box-shadow: 15px 15px 29px #101010, -15px -15px 29px #303030;
}
.box {
width: calc(100% / var(--li-items));
height: 100%;
list-style: none;
z-index: 1;
}
.link-menu {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
color: white;
}
.box-slide {
content: "";
position: absolute;
width: calc(100% / var(--li-items));
height: 100%;
background: rgba(255, 255, 255, 0.2);
opacity: 0;
transition: all 0.3s linear;
}
.box:nth-child(1),
.box:nth-child(2),
.box:nth-child(3) {
border-right: 0.5px solid rgba(255, 255, 255, 0.4);
}
.box:nth-child(1):hover ~ .box-slide {
left: 0%;
}
.box:nth-child(2):hover ~ .box-slide {
left: 25%;
}
.box:nth-child(3):hover ~ .box-slide {
left: 50%;
}
.box:nth-child(4):hover ~ .box-slide {
left: 75%;
}
.box:nth-child(n):hover ~ .box-slide {
opacity: 1;
transition: all 0.4s linear;
}
.box:nth-child(n):active ~ .box-slide {
background: tomato;
}
/* .box:nth-child(n):active ~ .box-slide {
background: tomato;
} */
@media screen and (max-width: 1360px) {
.box-ctn {
width: 50%;
}
}
@media screen and (max-width: 991px) {
.box-ctn {
width: 70%;
}
}
@media screen and (max-width: 767px) {
.box-ctn {
width: 90%;
}
}
Contact
I can adapt and install this animation on your website, contact me and let's talk about it!