Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mootools. остановка анимации в Fx.Slide, как остановить анимацию или... 
:(
    Опции темы
Sn0oSm0oMrIK
Дата 4.6.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



Здравствуйте. Недавно решил переписать некоторые элементы сайта с использованием mootools, включая меню
вот кусок кода с ним:
Код

<div id="navi">
<a id="navtr">Тренировка</a> || <a id="navch">Выбор щенка</a> || Аксессуары
<div id="subtr"><a href="train2.html">Выбор тренера</a> || <a href="obedience.html">Послушание</a> || <a href="training.html">Clicker Training</a> || <a href="protect.html">Защита</a> || <a href="handling.html">Хендлинг</a> || <a href="compulsion.html">О принуждении</a></div>
<div id="subch">Роль генетики || Почему важна порода? || Тест Кэмпбелла || Основы поведения || Охотничий и защитный инстинкты</div>
</div>


хотел сделать так, чтоб при наведении на  пункты меню "тренировка" и "выбор щенка" плавно вылезало соответствующее подменю.

вот скрипт, который получился:

Код

window.addEvent('domready', function(){
    
var ontr, onch;
var stattr;
var statch;

ontr = new Fx.Slide( $('subtr'),{duration : 3000} ).hide(); //выставил такую задержку только для ловли бага
stattr=false;
onch = new Fx.Slide( $('subch'),{duration : 3000} ).hide();
statch=false;

    $('navtr').addEvent('mouseenter', function(){
    if (statch==true&stattr==false)
        
            {
            statch=false;
            stattr=true;
            onch.slideOut().chain(function()
                {

                ontr.slideIn();
                })
                
            }
            else
            {
                if (statch==false&stattr==false)
                {
                stattr=true;
                ontr.slideIn();
                }
                
                
            }
        }
    );
    
    
    
    $('navch').addEvent('mouseenter', function(){

            if (stattr==true&statch==false)
            {
            stattr=false;
            statch=true;
            ontr.slideOut().chain(function()
                {
                onch.slideIn();
                })
            }
            else
            {
                if (statch==false&stattr==false)
                {
                statch=true;
                onch.slideIn();
                }
            }
        }
    );


});


но с этим решением есть 2 проблемы:
1) если навести курсор на один пункт меню, а затем, не дождавшись окончания анимации, навести его на другой пункт, вылезают оба подменю. я вижу тут только 2 решения: или при наведении на второй пункт меню сразу прерывать анимацию первого или на время анимации первого пункта запретить mouseenter для второго. проблема в том, что я понятия не имею, как это сделать.
2)более эстетическая, чем практическая проблема. наверняка код скрипта можно сделать покороче, а то он какой-то раздутый получился.

очень надеюсь на вашу помощь.

зы: если есть простой способ сделать такое меню с помощью мутулза, но без использования фх.слайд, буду очень признателен, если поделитесь.


Это сообщение отредактировал(а) Sn0oSm0oMrIK - 4.6.2010, 13:30
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.