Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

Отмена эффекта от :hover

Есть меню, в некоторых пунктах подменю. При открытии сайта на компьютерах и в разрешениях до 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"); } });

Комментариев нет:

Отправить комментарий