JS выпадающее меню -проблема закрытия..

Тема в разделе "Другие языки", создана пользователем Neow15ard, 16 авг 2010.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. Neow15ard

    Neow15ard

    Регистр.:
    27 ноя 2008
    Сообщения:
    422
    Симпатии:
    188
    Есть JS выпадающее меню (типа слайдера) , и проблема в том что оно изначально рисуется раскрытым , и после загрузки всей страницы начинает схлопываться. И иногда загрузка всей страницы происходт долго так как есть еще гугл мапс который подгружается после загрузк страницы и иногда флэш. Можно как то сделать чтобы это хозяйство сразу срабатывало ?
    Код схлопывания ниже.


    PHP:
    <!--
    window.addEvent('domready', function(){
      $(
    'drop_down_menu').getElements('li.menu').each( function( elem ){
        var list = 
    elem.getElement('ul.links');
        var 
    myFx = new Fx.Slide(list).hide();
        
    elem.addEvents({
          
    'mouseenter' : function(){
            
    myFx.cancel();
            
    myFx.slideIn();
          },
          
    'mouseleave' : function(){
            
    myFx.cancel();
            
    myFx.slideOut();
          }
        });
      })
    });
    //-->
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    принцип работы таких меню заключается в том что по какому-то событию они скрывают "блок ссылок" путем установки css свойств
    visibility или display

    у вас же это скрытие происходит при полной загрузке дума страницы

    PHP:
    window.addEvent('domready', function(){  // событие domready - т.е. сработает при загрузке дума  
      
    $('drop_down_menu').getElements('li.menu').each( function( elem ){ 
        var list = 
    elem.getElement('ul.links'); 
        var 
    myFx = new Fx.Slide(list).hide(); // походу само скрытие менюшек    
    следовательно чтоб исправить можно в отдаваемом браузере коде изначально установить css свойства visibility или display ...
     
  3. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    display:none предпочтительнее
     
  4. Neow15ard

    Neow15ard

    Регистр.:
    27 ноя 2008
    Сообщения:
    422
    Симпатии:
    188
    т.е. эта функция myfx.show должна будет присваивать стиль видимы а Hide display none части <li></li>.
    А поисковики как к этому - как то обсуждали что dispaly none это частый признак доров ?
     
  5. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    34
    Симпатии:
    0
    Ну не знаю, сам оптимизацией не занимаюсь, для этого есть специально обученные люди и выводить в топ яндекса сайты с менюшками подобного рода (li {display:none} в ксс) каких то проблем не создавало.
     
  6. Neow15ard

    Neow15ard

    Регистр.:
    27 ноя 2008
    Сообщения:
    422
    Симпатии:
    188
    Если ставлю изначально свойство display.none то проиходит все что надо кроме открытия меню собственно. Т.е. где то надо дописать после domready чтобы стиль display:none (который у меня прописан в css) изенился на block. (Функции Slide,hide ...) как я разобрался беруться из mootools .
    Подскажите плиз как исходя из того кода что есть выше сменить display.
    Я пробовал уже варинатов 50..((
    $(list).setStyle('display', 'block');
    и так myFx.setStyle('display', 'block');
    не получается.
    Т.е. мне для всех элементов(функция ниже) ul.links необходимо сменить стиль css с display.none на display.block. как это вставить ?
     
Статус темы:
Закрыта.