Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2010, 19:53
Аспирант
Отправить личное сообщение для adelante Посмотреть профиль Найти все сообщения от adelante
 
Регистрация: 26.01.2010
Сообщений: 44

Как сделать чтобы выпадающее меню убиралось не сразу
(решил вынести в отдельную тему)

Есть выпадающее меню, оно находится выше родительского на 30 пикселей (абсолютное позиционирование и "top:-30px;"). И вот, наводим на первую менюшку, "выпадает" вторая, неспеша переводим мышку на вторую, но не успеваем, ибо вторая менюшка пропадает.

В общем, попасть в неё (вторую менюшку) -- это целый аттракцион.

Подскажите, как сделать этот процесс более человеческим?
Какую-то паузу в яваскрипт? Или в стилях что-то накрутить?

Сама менюшка здесь: http://romaadelante.ru/t/test.html
Ответить с цитированием
  #2 (permalink)  
Старый 23.02.2010, 21:23
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

сделайте просто с помощью стилей css
ul:hover {display:block;}
, без jquery
эффектов плавных небудет, зато мучиться не надо
Или такой вариант выпадения:
в стилях так пишем:
ul {display:block; height:0;}
в скрипте так
$('ul').css('display','block').animate({height:'30px', top:'-30px'}, 300);/*при наведении курсора, а када убираем курсор сами догадайтесь как обратно сделать, всё логично*/
__________________
Нет предела совершенству...

Последний раз редактировалось sysya, 23.02.2010 в 21:25. Причина: подкорректировать
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2010, 15:53
Аспирант
Отправить личное сообщение для adelante Посмотреть профиль Найти все сообщения от adelante
 
Регистрация: 26.01.2010
Сообщений: 44

Похоже решил я баг выставлением padding: 15px 0 30px 0; у дочернего ul

правда при этом красивая анимация пропала, ну да и хрен с ней, переживем как-нибудь.
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2010, 10:13
Интересующийся
Отправить личное сообщение для Achilles_sm Посмотреть профиль Найти все сообщения от Achilles_sm
 
Регистрация: 02.03.2010
Сообщений: 16

Можно решить путём выставления скорости анимации. Т.е. в родительском блоке ставим hover(
function () {
$("#dmenu").animate({opacity: "1"}, "slow"); //дочерний блок появляется при наведении
$("#dmenu").animate({opacity: "1"}, 5000) //дочерний блок висит 5 секунд
},
function () {
$("#dmenu").animate({opacity: "0"}, "slow"); // дочерний блок гаснет
});

Вся анимация для одного (дочернего в данном случае) элемента выполняется в одной очереди. Поэтому гаснуть блок начнёт только после того, как провисит 5 секунд. Думаю, что этого достаточно для того, чтобы на него попасть мышкой =) Конечно, надо добавить, что при наведении на дочерний блок opacity будет оставаться единицей... Для этого можно сделать clearQueue при наведении на него или stop(). На Ваш выбор...

Последний раз редактировалось Achilles_sm, 02.03.2010 в 13:06.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как сделать меню на CSS если: greatilya (X)HTML/CSS 10 18.10.2009 20:26
Как сделать чтобы картинка не открывалась по ссылке а скачивалась test Общие вопросы Javascript 4 20.06.2009 08:35
Как сделать чтобы text() брал только текст родителя без текста вложенных контейнеров? Andrey32 jQuery 3 23.05.2009 01:33
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
Сделать выпадающее меню по аналогу SerG Общие вопросы Javascript 1 05.11.2008 15:05