mod_mljoostinamenu и выпадающее меню
  • trotom Май 2012
    добавил в mod_mljoostinamenu
    Список UL - LI многоуровневый
    архив внизу

    mod_mljoostinamenu.php
    mod_mljoostinamenu.xml

    меняем файлы тут
    \modules\

    Теперь можно сделать из него выпадающее меню
    Пример
    http://css-tricks.com/examples/SimplejQueryDropdowns/

    вот здесь с файлами
    http://css-tricks.com/simple-jquery-dropdowns/
    + залил во вложении в общем архиве

    Далее подключаем вот этот код в шаблон в

    "-sfx" - Суффикс класса модуля, заменяем на нужный


    <script src="<?php echo $templ; ?>/js/hoverIntent.js" type="text/javascript"></script>
    <script type="text/javascript">

    jQuery(function(){

    jQuery("ul.menulist-sfx li").hover(function(){

    jQuery(this).addClass("hover");
    jQuery('ul:first',this).css('visibility', 'visible');

    }, function(){

    jQuery(this).removeClass("hover");
    jQuery('ul:first',this).css('visibility', 'hidden');

    });

    jQuery("ul.menulist-sfx li ul li:has(ul)").find("a:first").append(" &raquo; ");

    });

    jQuery(function(){

    var config = {
    sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
    interval: 200, // number = milliseconds for onMouseOver polling interval
    over: doOpen, // function = onMouseOver callback (REQUIRED)
    timeout: 200, // number = milliseconds delay before onMouseOut
    out: doClose // function = onMouseOut callback (REQUIRED)
    };

    function doOpen() {
    jQuery(this).addClass("hover");
    jQuery('ul:first',this).css('visibility', 'visible');
    }

    function doClose() {
    jQuery(this).removeClass("hover");
    jQuery('ul:first',this).css('visibility', 'hidden');
    }

    jQuery("ul.menulist-sfx li").hoverIntent(config);

    jQuery("ul.menulist-sfx li ul li:has(ul)").find("a:first").append(" &raquo; ");

    });

    </script>


    дальше всё настраивается в css примерный код с того сайта:

    /*
    1 уровень
    */
    ul.menulist-sfx { position: relative; }
    ul.menulist-sfx li { font-weight: bold; float: left; zoom: 1; background: #ccc; }
    ul.menulist-sfx a:hover { color: #000; }
    ul.menulist-sfx a:active { color: #ffa500; }
    ul.menulist-sfx li a { display: block; padding: 4px 8px; border-right: 1px solid #333;
    color: #222; }
    ul.menulist-sfx li:last-child a { border-right: none; } /* Doesn't work in IE */
    ul.menulist-sfx li.hover,
    ul.menulist-sfx li:hover { background: #F3D673; color: black; position: relative; }
    ul.menulist-sfx li.hover a { color: black; }


    /*
    2 уровень
    */
    ul.menulist-sfx ul { width: 220px; visibility: hidden; position: absolute; top: 100%; left: 0; }
    ul.menulist-sfx ul li { font-weight: normal; background: #f6f6f6; color: #000;
    border-bottom: 1px solid #ccc; float: none; }

    /* IE 6 & 7 Needs Inline Block */
    ul.menulist-sfx ul li a { border-right: none; width: 100%; display: inline-block; }

    /*
    3 уровень
    */
    ul.menulist-sfx ul ul { left: 100%; top: 0; }
    ul.menulist-sfx li:hover > ul { visibility: visible; }


    поменяв во втором уровне

    ul.menulist-menu ul {
    top: 100;%
    left: 0;
    }


    на

    ul.menulist-menu ul {
    top: 0;
    left: 100%;
    }


    можно сделать вертикальное вымадающее меню

    Можно не подключать файл
    <script src="<?php echo $templ; ?>/js/hoverIntent.js" type="text/javascript"></script>
    но тогда вторая функция не нужна - её удалить надо. Вроде это доп настройки, сильно не вникал. Без них по крайней мере тоже работает.
    Отредактированно trotom в 2012-05-12 08:25:10
  • trotom Май 2012
    А теперь вопрос: меню конфликтует с галереей joiboss - перестают работать все скрипты галереи. Как их подружить?

    конфликт явно с этим кодом
    <script type="text/javascript">
    ...
    </script>
    Отредактированно trotom в 2012-05-12 07:13:40
  • ArkadiyArkadiy Май 2012
    Сомневаюсь, для определения конфдикта лучше посмотреть что говорит firebug.
  • trotom Май 2012
    Посмотрел внимательнее, можно вторую функцию убрать в скрипте, оставить только первую - всё вроде работает

    <script type="text/javascript">

    jQuery(function(){

    jQuery("ul.menulist-menu li").hover(function(){

    jQuery(this).addClass("hover");
    jQuery('ul:first',this).css('visibility', 'visible');

    }, function(){

    jQuery(this).removeClass("hover");
    jQuery('ul:first',this).css('visibility', 'hidden');

    });

    jQuery("ul.menulist-menu li ul li:has(ul)").find("a:first").append(" &raquo; ");

    });


    Но можно вторую оставить, только надо подключить дополнительно один файл, предварительно скопировав его в шаблон

    <script src="<?php echo $templ; ?>/js/hoverIntent.js" type="text/javascript"></script>

    Сейчас первый пост исправлю
    Отредактированно trotom в 2012-05-12 08:19:07

Добро пожаловать!

Похоже, что Вы здесь впервые. Если хотите поучаствовать, нажмите на одну из этих кнопок!

Войти Зарегистрироваться

В теме отметились