Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2018, 21:57
Новичок на форуме
Отправить личное сообщение для WebCafe Посмотреть профиль Найти все сообщения от WebCafe
 
Регистрация: 20.06.2018
Сообщений: 1

Animate и обработка mouseenter, mouseleave
Все работает прекрасно. Но только один раз. Один mouseenter и один mouseleave. Потом #icon не скрывается при наведении, мигнет один раз и остаётся на месте, как будто срабатывает fadeout(), а потом сразу fadein(). Подскажите в чём может быть проблема?

$(document).ready(function() {
                $("#menu").mouseenter(function() {
                                $("li#icon").fadeOut(200, function() {$("div#menu").animate({width: "200px"}, function() {$(".menu_item").fadeIn();});});
                    }
                );
                $("#menu").mouseleave(function() {
                                $(".menu_item").fadeOut(200, function() {$("div#menu").animate({width: "50px"}, function() {$("#icon").fadeIn()});});
                    }
                );
            })


<div class="menu" id="menu">
      <nav>
            <ul>
                 <li class="icon" id="icon">|||</li>
                 <li class="menu_item">главная</li>
                 <li class="menu_item">о компании</li>
                 <li class="menu_item">портфолио</li>
                 <li class="menu_item">контакты</li>
                 <li class="menu_item">услуги</li>
                 <li class="menu_item">сделать заказ</li>
           </ul>
     </nav>
</div>


по задумке при наведении на блок должна скрываться иконка, затем расширяться блок с меню, а после этого появляться в нём элементы.

Последний раз редактировалось WebCafe, 20.06.2018 в 21:59.
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2018, 23:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

WebCafe,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #icon ~ li {
      transition: 1s;
      opacity: 0;
  }
  #menu {
     width: 50px;
     transition: 1s;
     transition-delay: .4s;
     overflow: hidden;
  }
  #menu:hover {
     width: 200px;
  }
  #menu:hover #icon ~ li {
     opacity: 1;
  }
  #menu li {
      list-style: none;
      transition: 1s .4s;
  }
  #menu:hover #icon {
     opacity: 0;
     transition-delay: .1s;
  }
  #menu #icon {
    transition-delay: 1.4s;
    opacity: 1;
  }

  </style>

</head>

<body>
<div class="menu" id="menu">
      <nav>
            <ul>
                 <li class="icon" id="icon">|||</li>
                 <li class="menu_item">главная</li>
                 <li class="menu_item">о компании</li>
                 <li class="menu_item">портфолио</li>
                 <li class="menu_item">контакты</li>
                 <li class="menu_item">услуги</li>
                 <li class="menu_item">сделать заказ</li>
           </ul>
     </nav>
</div>

</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с mouseenter / mouseleave и setTimeout alecto jQuery 33 30.06.2016 15:42
Jquery. animate. opacity Dimas22 jQuery 1 12.03.2016 12:08
Аналог jQuery(...).animate на чистом JS 2chan Общие вопросы Javascript 3 12.07.2015 19:23
Реализация mouseenter Andrew17 jQuery 3 11.12.2011 03:21
jQuery, функция animate(), рекурсия xintrea jQuery 12 03.01.2011 12:33