В меню, при нанесении курсора на Категории открывается подменю, а при удалении курсора подменю закрывается. Как сделать чтобы курсор мог спуститься
let linking = document.querySelector('.main-link');
let menu = document.querySelector('.submenu');
linking.onmouseover = function() {
mouseOver()
};
function mouseOver() {
menu.style.visibility = 'visible';
menu.style.opacity = 1;
menu.style.zIndex = 1;
}
function mouseOut() {
menu.style.visibility = 'hidden';
menu.style.opacity = 0;
menu.style.zIndex = 0;
}
.nav-link {
text-transform: uppercase;
position: relative;
}
.nav-link:hover {
cursor: pointer;
color: var(--color-green) !important;
transition: all .5s ease;
}
.nav-link::before {
content: '';
position: absolute;
width: 100%;
height: 2px;
border-radius: 2px;
background-color: var(--color-green);
bottom: 0;
left: 0;
transform-origin: right;
transform: scaleX(0);
transition: transform .3s ease-in-out;
}
.nav-link:hover::before {
transform-origin: left;
transform: scaleX(1);
}
.submenu {
position: absolute;
top: 135px;
left: -33px;
opacity: 0;
z-index: -1;
width: calc(100% + 33px);
background: var(--color-white);
display: flex;
padding-left: 233px;
padding-right: 20px;
padding-top: 35px;
padding-bottom: 70px;
box-shadow: 0 -5px 8px 1px rgb(0 0 0 / 6%);
visibility: visible;
transition: all .3s ease-in-out;
}
.main-link:hover.submenu {
visibility: visible;
opacity: 1;
}
@media screen and (min-width: 1400px) {
.submenu {
padding-left: 370px !important;
padding-right: 124px !important;
}
}
@media screen and (min-width: 1200px) and (max-width:1400px) {
.submenu {
padding-left: 330px !important;
padding-right: 124px !important;
}
}
@media screen and (max-width:992px) {
.submenu {
display: flex;
flex-direction: column;
align-items: flex-start;
padding-left: 50px !important;
}
}
.submenu h3 {
font-family: montserratboldarm, sans-serif;
font-size: 15px;
color: var(--color-black);
text-transform: uppercase;
margin-bottom: 20px;
font-weight: 600;
}
.category-list {
min-width: 250px;
}
.category-list-item {
display: flex;
align-items: flex-start;
justify-content: center;
flex-direction: column;
margin: 12px 0;
}
.category-link {
color: var(--color-text);
text-decoration: none;
}
.category-link:hover {
color: var(--color-green);
cursor: pointer;
transition: all .5s ease-in-out;
}
.category-prod-list {
display: flex;
}
.category-prod-list {
display: flex;
flex-direction: row;
align-items: center;
}
.category-prod-list-item {
position: relative;
width: 50% !important;
height: 200px;
margin: 15px;
overflow: hidden;
}
<div class="menu">
<nav class="navbar navbar-expand-lg">
<a class="navbar-brand" href="home-russian.html" target="_blank">
<img src="images/header-logo.png" alt="Logo" class="img-fluid navbar-brand-img">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link main-link " href="category-russian.html" target="_blank">КАТЕГОРИИ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="projects-russian.html" target="_blank">РАБОТЫ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="category-products-russian.html" target="_blank">ПРОДУКТЫ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="about-russian.html" target="_blank">О НАС</a>
</li>
<li class="nav-item">
<a class="nav-link" href="blog-russian.html" target="_blank">БЛОГ</a>
</li>
<li class="nav-item">
<a class="nav-link" href="contact-russian.html" target="_blank">КОНТАКТЫ</a>
</li>
</ul>
</div>
</nav>
</div>
<!--submenu-->
<div class="submenu">
<div class="ps-2">
<h3>КАТЕГОРИИ</h3>
<ul class="category-list list-unstyled m-0">
<li class="category-list-item">
<a href="category-details-russian.html" target="_blank" class="category-link">Кухонная мебель</a>
</li>
<li class="category-list-item">
<a href="#" class="category-link"> Мебель для гостиной </a>
</li>
<li class="category-list-item">
<a href="#" class="category-link">Мебель для спальни </a>
</li>
<li class="category-list-item">
<a href="#" class="category-link">Детская мебель </a>
</li>
<li class="category-list-item">
<a href="#" class="category-link">Офисная мебель</a>
</li>
<li class="category-list-item">
<a href="#" class="category-link">Мебель для прихожей</a>
</li>
</ul>
</div>
<div class="category-prod-list">
<div class="category-prod-list-item">
<img src="images/3menu-img1.png" alt="" class="img-fluid">
<a href="#" class="btn-black">Купите сейчас</a>
</div>
<div class="category-prod-list-item">
<img src="images/3menu-img2.png" alt="" class="img-fluid">
<a href="#" class="btn-black">Купите сейчас </a>
</div>
</div>
</div>
`***ttps://i.stack.imgur.com/g82TX.jpg
Ответы (1 шт):
Автор решения: puffleeck
→ Ссылка
для этого достаточно буквально одной строки CSS
.x:not(:hover)> :not(.y) {display: none;} /*!!!!!!!!!!*/
.x {
border: 1px solid black;
border-radius: .5em;
padding: .5em;
margin: .5em;
background: rgba(0, 0, 0, 0.2);
float: left;
}
<div class='x'>
<div class='y'>header a1</div>
<p>option</p>
<p>option</p>
<p>option</p>
<p>option</p>
</div>
<div class='x'>
<div class='y'>header b1</div>
<div class='x'>
<div class='y'>header b2 - 1</div>
<p>option</p>
<p>option</p>
<p>option</p>
<p>option</p>
</div>
<div class='x'>
<div class='y'>header b2 - 2 float'ы такие... float'ные...</div>
<div class='x'>
<div class='y'>header b3 - 1</div>
<p>option</p>
<p>option</p>
<p>option</p>
<p>option</p>
</div>
<p>option</p>
<div class='x'>
<div class='y'>header b3 - 2</div>
<p>option</p>
<p>option</p>
<p>option</p>
<p>option</p>
</div>
<div class='x'>
<div class='y'>header b3 - 3</div>
<p>option</p>
<p>option</p>
<p>option</p>
<p>option</p>
</div>
</div>
<div class='x'>
<div class='y'>header b2 - 3</div>
<p>option</p>
<p>option</p>
<p>option</p>
<p>option</p>
</div>
</div>

