Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.05.2015, 14:53
Новичок на форуме
Отправить личное сообщение для Nikolay.K Посмотреть профиль Найти все сообщения от Nikolay.K
 
Регистрация: 17.05.2015
Сообщений: 9

Меню аккордеон при событии hover | jQuery
Всем доброго дня!
Нужен скрипт, который будет открывать подпункты меню "Submenu" при наведении на их родителя с небольшой задержкой и скрывать если отвести курсор. Заранее спасибо!


<nav>
 <ul id="nav">
 <li><a href="#">Blog</a>
 <ul class="submenu">
 <li><a href="#">Submenu 1</a></li>
 <li><a href="#">Submenu 2</a></li>
 <li><a href="#">Submenu 3</a></li>
 </ul>
 </li>
 <li class="current-menu-item"><a href="#">Page</a></li>
 <li><a href="#">Dropdown</a>
 <ul class="submenu">
 <li><a href="#">Submenu 1</a></li>
 <li><a href="#">Submenu 2</a></li>
 <li><a href="#">Submenu 3</a></li>
 </ul>
 </li>
 <li><a href="#">Contact</a></li>
 </ul>
</nav>

Последний раз редактировалось Nikolay.K, 17.05.2015 в 20:24.
Ответить с цитированием
  #2 (permalink)  
Старый 17.05.2015, 16:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Nikolay.K,
меню как на сайте утконос
Ответить с цитированием
  #3 (permalink)  
Старый 17.05.2015, 20:17
Новичок на форуме
Отправить личное сообщение для Nikolay.K Посмотреть профиль Найти все сообщения от Nikolay.K
 
Регистрация: 17.05.2015
Сообщений: 9

$(document).ready(function () {
                var time = 300;              
                $("#nav").mouseenter(function(){
                    var $elem = $(".submenu", this);
                    if ($elem.css('display') === 'none') {
                        $elem.stop(true).delay(time).fadeIn(600);
                    } else {
                        $elem.stop().animate({opacity:1}, 600);
                    }
                    time = 100;
                }).mouseleave(function(){
                    $(".submenu", this).stop(true).delay(300).fadeOut(600);
                });
            });

Только здесь при загрузке страницы открыты все имеющиеся подменю, а при повторном наведении так же открываются все. Как исправить?

Последний раз редактировалось Nikolay.K, 17.05.2015 в 20:29.
Ответить с цитированием
  #4 (permalink)  
Старый 17.05.2015, 20:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

открывашка 218 для menu hover
Nikolay.K,
открывашка 218

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
     .submenu  {
    display: none;
  }    </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function() {
    var a = $("nav"),
        b = 700;
    $(".submenu", a).each(function(a, c) {
        $(c).parent().on({
            mouseenter: function() {
                $(c).stop(!0).delay(b).fadeIn(600);

                b = 100
            },
            mouseleave: function() {
                $(c).stop(!0).delay(300).fadeOut(600)
            }
        })
    }).hide().eq(0).show();
    a.on({
        mouseleave: function() {
            b = 700
        }
    })
});
  </script>
</head>

<body>  <nav>
 <ul id="nav">
 <li><a href="#">Blog</a>
 <ul class="submenu">
 <li><a href="#">Submenu 1</a></li>
 <li><a href="#">Submenu 2</a></li>
 <li><a href="#">Submenu 3</a></li>
 </ul>
 </li>
 <li class="current-menu-item"><a href="#">Page</a></li>
 <li><a href="#">Dropdown</a>
 <ul class="submenu">
 <li><a href="#">Submenu 1</a></li>
 <li><a href="#">Submenu 2</a></li>
 <li><a href="#">Submenu 3</a></li>
 </ul>
 </li>
 <li><a href="#">Contact</a></li>
 </ul>
</nav>

</body>
</html>

Последний раз редактировалось рони, 17.05.2015 в 21:42.
Ответить с цитированием
  #5 (permalink)  
Старый 17.05.2015, 21:08
Новичок на форуме
Отправить личное сообщение для Nikolay.K Посмотреть профиль Найти все сообщения от Nikolay.K
 
Регистрация: 17.05.2015
Сообщений: 9

Спасибо за помощь! Как при загрузке страницы скрыть подпункты, или оставить открытыми лишь у одного родителя?
Ответить с цитированием
  #6 (permalink)  
Старый 17.05.2015, 21:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Nikolay.K
Как при загрузке страницы скрыть подпункты
Сообщение от рони
.submenu { display: none;}
у вас css не работает?
вариант без css
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
   $(function() {
    var a = $("nav"),
        b = 700,
        s =  $(".submenu", a);
        s.each(function(a, c) {
        $(c).parent().on({
            mouseenter: function() {
                $(c).stop(!0).delay(b).fadeIn(600);
                s.not(c).stop(!0).delay(300).fadeOut(600)
                b = 100
            },
            mouseleave: function() {
                $(c).stop(!0).delay(300).fadeOut(600)
            }
        })
    }).hide().eq(0).show();
    a.on({
        mouseleave: function() {
            b = 700
        }
    })
});
  </script>
</head>

<body>  <nav>
 <ul id="nav">
 <li><a href="#">Blog</a>
 <ul class="submenu">
 <li><a href="#">Submenu 1</a></li>
 <li><a href="#">Submenu 2</a></li>
 <li><a href="#">Submenu 3</a></li>
 </ul>
 </li>
 <li class="current-menu-item"><a href="#">Page</a></li>
 <li><a href="#">Dropdown</a>
 <ul class="submenu">
 <li><a href="#">Submenu 1</a></li>
 <li><a href="#">Submenu 2</a></li>
 <li><a href="#">Submenu 3</a></li>
 </ul>
 </li>
 <li><a href="#">Contact</a></li>
 </ul>
</nav>

</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 17.05.2015, 22:05
Новичок на форуме
Отправить личное сообщение для Nikolay.K Посмотреть профиль Найти все сообщения от Nikolay.K
 
Регистрация: 17.05.2015
Сообщений: 9

Про "display: none;" и забыл как то) но ваш вариант то что надо. Спасибо за помощь!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вертикальное меню - аккордеон. Проблема. notgosu Events/DOM/Window 5 23.01.2013 11:47
Изменить скрипт меню на JQuery BuTaJIuu Элементы интерфейса 0 08.12.2012 18:35
jquery ui layout + выпадающее меню Sveta jQuery 2 04.12.2012 09:04
Выплывающая подсказка меню при помощи Hover hydetakarai jQuery 2 27.11.2012 00:39
Меню с использованием Jquery, "защита от дурака" :) vyrtime jQuery 2 05.08.2011 12:50