Задержка после hover (JS)

Вопросы, не относящиеся ни к одному разделу

Задержка после hover (JS)

Сообщение guyasyou » 22 авг 2013, 12:54 ,  »  Сообщение:#1

Здрасти!
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
тут переделываю горизонтальное меню. Делаю более легкий и без лишней херни.
Вот мой вариант
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
. Все бы хорошо, но вот без задержки перед раскрыванием подменю. То есть, если быстро провести курсор над раскрывающимся элементом, то он тут же открывается.
Как сделать так, чтобы надо было какое то время держать курсор над элементом, чтобы он раскрылся. Так работает оригинал
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
.

Погуглил, но там везде какой то доп плагин (hoverIntent) надо подрубить, можно ли без?

Вот мой JS
Код: Выделить всё
<script type="text/javascript">
$(document).ready(function(){
  $('li.nav-dropdown').hover(function () {
     clearTimeout($.data(this,'timer'));
     $('ul.sub-dropdown',this).stop(true,true).slideDown(200);
  }, function () {
    $.data(this,'timer', setTimeout($.proxy(function() {
      $('ul.sub-dropdown',this).stop(true,true).slideUp(200);
    }, this), 200));
  });

});
</script>


И еще, можно ли оптимизировать controller autonav? А то он перебирает и фильтрует все страницы, а их там 4000шт а вывести там надо штук 70

И еще вопрос: кешируется ли блок, если он вставлен из шаблона, типо:
Код: Выделить всё
$menu = BlockType::getByHandle('autonav');
         $menu->controller->orderBy = 'display_asc';
         $menu->controller->displayPages = 'top';
         $menu->controller->displaySubPages = 'all';
         $menu->controller->displaySubPageLevels = 'all';
         $menu->render('templates/header');

А то медленно как то работает
Хотя странно, ведь меню слева тоже autonav, но он быстро работает... Почему страница
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
работает медленнее других?
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Задержка после hover (JS)

Сообщение Count_Raven » 22 авг 2013, 20:20 ,  »  Сообщение:#2

1. Некогда разбираться в API jQuery events для hover, но попробуй почитать к примеру тут
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
. Либо сделай свой setTimeOut без jQuery, чтобы появлялось позже.
2. Сделай свой Autonav. Сделай filterByAttribute и сделай атрибут нужный для страниц. Либо фильтруй по дочерним от какой-то. Тут даже не знаю какой вариант, смотря что тебе нужно. Autonav использует PageList модель, какие указания даешь ей, такой SQL-запрос из базы для страниц и будет.
3. Не уверен, но если включено принудительное полностраничное кеширование, то точно да. Кешируется. Только при принудиловке иногда другие блоки глючат, которым данные из кэша мешают для полноценной работы. Тут многое зависит от автора блока - взаимодействует ли он с системой кэширования Concrete5 или с принудительным кешированием косячит по данным и получается некорректная работа.

Устал и хочу спать. Ответил поверхностно. Как-то так.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Задержка после hover (JS)

Сообщение guyasyou » 22 авг 2013, 20:37 ,  »  Сообщение:#3

Count_Raven писал(а):2. Сделай свой Autonav. Сделай filterByAttribute и сделай атрибут нужный для страниц. Либо фильтруй по дочерним от какой-то. Тут даже не знаю какой вариант, смотря что тебе нужно. Autonav использует PageList модель, какие указания даешь ей, такой SQL-запрос из базы для страниц и будет.

Я думал насчет того, чтобы пройтись по дочерним страницам лишь определенных разделов (исключив каталог, так как в нем 99% страниц). но разве запрос фильтра по родителю не проходит по всем страницам?

И изза этого цикла тормозит? Ведь меню слева не тормозит... а он также перебирает эти 4000 страниц.


UPD: Ограничил глубину, стало быстрее. Ща сделаю так: Загружу тока топ уровень, проверю у них атрибут "не показывать дочек", если нет атрибута, пройтись по дочкам. Думаю так шустрее будет.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Задержка после hover (JS)

Сообщение vbnm » 23 авг 2013, 02:00 ,  »  Сообщение:#4

У меня твоя ссыль выдает такое:
Безымянный.JPG
У вас нет необходимых прав для просмотра вложений в этом сообщении.
vbnm
 
Сообщения: 462
Зарегистрирован: 02 июл 2011, 01:44

Re: Задержка после hover (JS)

Сообщение Count_Raven » 23 авг 2013, 11:46 ,  »  Сообщение:#5

vbnm писал(а):У меня твоя ссыль выдает такое:
Безымянный.JPG

Ну так тестируется же. Работа там идет.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Задержка после hover (JS)

Сообщение guyasyou » 23 авг 2013, 12:04 ,  »  Сообщение:#6

я не могу получить нормально данные дочерних страниц от указанного родителя. они не в том формате и не в том порядке выдаются.
буду делать по простому, как pagelist получать прямо в шаблоне autonav.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Задержка после hover (JS)

Сообщение cmsservice » 29 авг 2013, 20:32 ,  »  Сообщение:#7

а еще можно перекрыть и реализовать свой контроллер автонава, тоже вариант.
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron