Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2015, 22:04
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

Усовершенствование кода горизонтального меню
Написал горизонтальное резиновое меню для себя. В принципе что хотел реализовать то и вышло(выпадающее меню на несколько колонок, при уменьшении все плавно смещает и обрезает текст в нужный момент), возможно у Вас будут другие взгляды на определенные вещи, буду рад услышать. Но вся суть вопроса немного в другом.

После нескольких ресайзов hover заметно стает замедление срабатывать. Мои знания jQuery пока что не дают ответа на вопрос почему так может быть. Может кто-то подскажет в чем суть проблемы и как ее можно решить.

Демо codepen.io
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2015, 22:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

falkone,
каждый resize увеличивает количество hover
Ответить с цитированием
  #3 (permalink)  
Старый 27.09.2015, 23:49
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

Ого, точно, в консоле hover потом растут очень сильно. С чем это связано?
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2015, 00:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от рони
С чем это связано?
Сообщение от рони
каждый resize увеличивает количество hover

resize -> AdaptiveMenu.init() -> this.setSubWrapperWidth() -> this.addDesktopEventListener() -> this.$li.hover
Ответить с цитированием
  #5 (permalink)  
Старый 28.09.2015, 00:20
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

В консоле после ресайза, hover за раз вызывается больше 5 раз, чем больше ресайзов тем больше одновременных вызовов.

Это можно как то обойти?
Ответить с цитированием
  #6 (permalink)  
Старый 28.09.2015, 00:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

falkone,
проверять если hover установлен, более не ставить.
и ждать когда ресайз закончится (для оптимизации) тогда запускать перерасчёт.
Ответить с цитированием
  #7 (permalink)  
Старый 28.09.2015, 00:35
Аспирант
Отправить личное сообщение для falkone Посмотреть профиль Найти все сообщения от falkone
 
Регистрация: 27.09.2014
Сообщений: 42

Спасибо, завтра доделаю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
нужен совет по оптимизации кода выпадающего меню! Arkinsstoun jQuery 5 18.06.2012 15:33
Оптимизация кода (создание горизонтального меню) IONEX jQuery 0 16.01.2012 05:07
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36