Есть меню, в некоторых пунктах подменю. При открытии сайта на компьютерах и в разрешениях до 768px применяться эффект через псевдо класс :hover. Так вот проблема в том, что мне нужно как то отменить эффект наведения ниже разрешения 768px, (видимо как то в медиа запросе это возможно сделать) а затем, на разрешениях ниже 768px применять скрипт jQuery, который есть ниже по переключению класса.
В приоритете - как активизировать мой скрипт jQuery только на разрешениях ниже 768px. Как это возможно реализовать?
Вот меню:
$('.toggle-menu').click(function() {
$('.toggle-menu').removeClass('active');
$(this).toggleClass('active');
});
.topmenu {
display: flex;
flex-wrap: wrap;
backface-visibility: hidden;
background: #fff;
}
.topmenu>li {
display: inline-block;
position: relative;
}
.topmenu>li>a {
height: 30px;
line-height: 30px;
padding: 0 7px;
font-weight: bold;
color: #6EA3DD;
text-transform: uppercase;
transition: .1s ease-in-out;
border-bottom: 2px solid #fff;
}
.topmenu>li>a.actual-menu {
border-bottom: 2px solid #FBC7CB;
}
.down:after {
content: '';
position: absolute;
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 7px solid #6EA3DD;
left: 47%;
bottom: -7px;
z-index: 100;
}
.topmenu li a:hover {
color: #E6855F;
border-bottom: 2px solid #FBC7CB;
transition: .1s ease-in-out;
}
.submenu {
background: white;
border: 2px solid #95BCE6;
position: absolute;
left: 5%;
right: -35%;
visibility: hidden;
opacity: 0;
padding: 0 10px 5px;
z-index: 150;
transition: .1s ease-in-out;
transform: translate(0%, 15px);
}
.topmenu>li:hover .submenu {
visibility: visible;
opacity: 1;
transform: translate(0%, 0px);
}
.active {
display: block;
}
Ответ
Что бы отменить действие hover достаточно сделать по умолчанию то что вы делаете при событие hover .
Здесь Вы это увидите если посмотрите пример сначала свёрнутый а потом развёрнутый на всю страницу
* {
list-style: none;
text-decoration: none;
}
ul{
display:inline-block;
}
ul a,
ul span {
font-weight: 900;
color: blue;
}
li ul {
display: none;
}
li:hover ul {
display: block;
}
@media (max-width:768px) {
li ul {
display: block;
}
}
по поводу второго вопроса , как включать script при при определённом разрешении экрана. Делается это так:
$(window).on("load resize", function() { if ($(document).width() < 768) { $.getScript("script.js"); } });
Комментариев нет:
Отправить комментарий