Скрипт, для принятие Anti-Captha. На сайте с заданием. Все объясню в лс. Телеграмм
Меню в зависимости от разрешения экрана выполняло свои функции
Прошу помощи специалистов, так как новичок в данном деле.Как сделать чтобы меню в зависимости от разрешения экрана выполняло свои функции?
Выше 768px:
1) Здесь интересует наведение мыши и клик. При наведении мыши или по клику на li.item открывалось его под меню.
2) При клике по li.item идет переход по ссылке, его необходимо отключить, переход по ссылке li должен быть только по подменю ul.subs li.
3) Под меню должно закрываться только при условии, если идет переход мыши или клик на следующее li.item или клик на закрытие окна на cross.
4) Если просто убрать мышь с поля меню, оно закрывается, а должно быть открыто, до тех пор, пока не выполнится условие в пункте 3.
Ниже 768px:
5) Здесь открытие меню должно быть только по клику, а закрытие по клику на крестик cross.
6) При клике по li.item идет переход по ссылке, его необходимо отключить, переход по ссылке li должен быть только по подменю ul.subs li.
PS:
1) По разрешению экрана интересует только метод matchMedia, не resize.
2) Только JavaScript.
3) Сейчас идет конфликт по закрытию меню на cross, потому как функция по click дублируется.
4) Не срабатывает сразу метод matchMedia, только после обновления экрана.
5) Не выполняется пункт 4, так как не знаю куда сувать)) e.preventDefault(), все уже перетыкал))).
6) Пункт 2 и 6 так же не выполняется, идет сразу переход по ссылке.
7) Если данный код еще можно уменьшить, это вообще супер! Так как переменную li приходится дублировать.
var dropdown = document.querySelectorAll('.menu-left>li');
var mediaQuery = window.matchMedia('(min-width: 768px)');
for(var i=0; i
function handleTabletChange(e) {
if (e.matches) {
['mouseover', 'click'].forEach(e => {
dropdown.addEventListener(e, function(e) {
var li = e.target.closest('li.item');
li.classList.add('active');
});
});
dropdown.addEventListener('mouseout', function(e) {
var li = e.target.closest('li.item');
li.classList.remove('active');
});
} else {
dropdown.addEventListener('click', function(e) {
var li = e.target.closest('li.item');
li.classList.add('active');
});
}
}
mediaQuery.addListener(handleTabletChange);
handleTabletChange(mediaQuery);
}
var cross = document.querySelectorAll('.cross');
for(var i=0; i
cross.addEventListener('click', function(e) {
var li = e.target.closest('li.item');
li.classList.remove('active');
});
}
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
- Пример
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 заявкаЗакрыт4 года назад
Нужно сделать расширение для входа на сайт. Цель: вход для сотрудников что бы не видели логины и пароли Функции: 1. импорт файла с логинами и паролями 2. скрытость логинов и паролей, ...
Веб-программирование1 заявкаЗакрыт4 года назадЗдравствуйте! Ищу разработчика Битрикс для постоянного сотрудничества - мелкие доделки, крупные разработки, полная интеграция на CMS.Сейчас есть одна тестовая задача, ищу исполнителя.Задача:В корзине сайта необходимо сделать динамический функционал, который будет выводить "Купите еще на N ...
Веб-программирование2 заявкиЗакрыт4 года назад- $8
В выдаче яндекса есть слайдер пример http://joxi.ru/LmG4lLQHl68QL2 Нужно помочь сделать такой же. Нужен человек, который уже делал такое. Понятно, что это турбо страницы и т.д. Но надо чтобы у Вас уже был готовый ...
Веб-программирование1 заявкаЗакрыт4 года назад Ищем специалиста по данной системе. Фронт, написание, доработка плагинов. Оплата почасовая, по трекеру. До $30 в час.
Веб-программированиенет заявокЗакрыт4 года назадНужен парсинг сайта, Live матчей футбола на странице https://www.sofascore.com/football/livescore ТЗ по ссылке: https://docs.google.com/document/d/1aPjvn-h3y6TO_TRhpY-Ewq8fGlYlm39oA5OOg0NDArk/edit?usp=sharing Срочность высокая, оплата достойная. Предпочтительно на PHP.
Веб-программирование1 заявкаЗакрыт4 года назадПроект на laravel 7.2 ( агрегатор перевозок ) От вас требуется: Отвественный подход, быть на связи, иметь возможность выделять от 5 часов в день на проект. Оплата: делим задачи на этапы ...
Веб-программированиенет заявокЗакрыт4 года назадТребуется разработчик на долгосрочную работу. Нужно уметь создавать Telegram ботов, умение работать с базами данных, сортировкой данных в них. Проект будет высконагруженный, это тоже стоит учитывать. Все остальное расскажу в личных сообщениях.
Веб-программирование9 заявокЗакрыт4 года назадНа сайт нужно прикрутить по апи витжет оплаты с другого сайта
Веб-программирование3 заявкиЗакрыт4 года назадНужен typescript senior Перед стартом обязательно подписание NDA Если работаете еще и с Laravel то будет плюсом Оставляйте ТЕЛЕГРАМ
Веб-программирование1 заявкаЗакрыт4 года назад