Я пытаюсь преобразовать существующую систему меню, загруженную встроенным Javascript, в новый, более эффективный код, используя только jQuery.
У меня есть горизонтальная полоса с изображениями ролловеров. У меня есть скрытое поле на странице, содержащее целочисленное значение. Когда страница загружена, соответствующее меню загружается с «липкой» версией изображения, а все остальные пункты меню меняются местами при входе и выходе мыши. Он был загружен тоннами встроенного Javascript и файла чудовищного Javascript, который было утомительно конвертировать каждый раз, когда я создавал новый сайт.
Я успешно конвертировал все это в jQuery, где мне также удалось отключить щелчок по пункту меню. Теперь я могу просто установить некоторые переменные и легко настроить их для каждого дизайна сайта.
Отлично работает ...
Теперь выходит новый выпуск. Один дизайн содержит несколько выдвижных ящиков под каждым изображением меню. Скользящая анимация обрабатывается внешним файлом JS, а сами ящики меню представляют собой просто DIV, содержащий содержимое, вложенное в контейнер DIV.
Итак, я написал несколько простых вещей для jQuery, которые анимируют DIV и вставляют его и выводят при наведении курсора мыши для изображений меню.
Проблема в том, что я не могу решить проблему перемещения мыши от изображения меню вниз в ящик меню без закрытия ящика. Я понимаю «почему?» ... Я оставляю изображение, которое запускает анимацию, чтобы закрыть ящик, прежде чем я смогу войти внутрь. Если я применяю анимацию наведения к контейнеру ящика, он просто создает зону под меню, которая также запускает анимацию, и я тоже этого не хочу. Кажется, с jQuery все более усложняется. Все это работало нормально с встроенным Javascript ... Вы могли просто переместить свою мышь из изображения в смежный открытый ящик, не вызывая функцию, чтобы закрыть это ... как будто встроенный "ввод мыши" для ящика отменил изображение "мышь покидает".
Есть предложения?
Спасибо вам!
EDIT:
Мне кажется, я решил эту проблему с помощью .stop (true, false) при переходе от изображения в ящик. Это останавливает анимацию до того, как она запустится. Затем то же самое при вводе изображения ДО начала нормальной анимации ... это имеет эффект остановки анимации, вызванной выходом из ящика и ввода изображения, но также ничего не делает при обычном вводе изображения. Еще тестирование, а затем я выложу пример кода.
РЕДАКТИРОВАТЬ # 2:
У меня он работает с "stop ()" и "delay ()" для управления анимацией, но возможно заблокировать открытие ящика, если вы можете вставить в него мышь быстрее, чем требуется, чтобы открыть его. Устанавливается с 150 мс. но прямо сейчас установите 300 мс, чтобы преувеличить проблему.
Соответствующий код размещен здесь ...
jsfiddle.net / qPLVp / 8 /
РЕДАКТИРОВАТЬ # 3:
Благодаря Нейлу, сейчас это работает очень хорошо. При более высокой скорости анимации состояние мыши, которая выходит за рамки меню и входит в ящик, будет минимальным. Но если это произойдет, ящик не закроется, что намного лучше, чем закрытие из-под вашей мыши.
http://jsfiddle.net/elusien/PayFw/8/
РЕДАКТИРОВАТЬ # 4:
Опять же, благодаря Нейлу, это более эффективная версия того же кода ...
http://jsfiddle.net/PayFw/9/