Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   overflow по окончании анимации (https://javascript.ru/forum/jquery/56943-overflow-po-okonchanii-animacii.html)

jasper-blondin 11.07.2015 11:19

overflow по окончании анимации
 
Здравствуйте!

Нужна помощь в решении головоломки.
Написал скрипт выпадающего меню на JQuery. Во всех браузерах работает нормально (проверял на локальном компьютере).
После того, как я установил данный скрипт на сайт, меню работает должным образом только в Firefox. Chrome, Yandex, IE -- не выпадает меню третьего уровня. Причина -- после завершения анимации выпадания меню второго уровня для него устанавливается свойство overflow:hidden (которое используется во время анимации JQuery, как я понял).

Увидеть баг можно здесь: http://ez-bitrix.ru
Для того, чтобы появилось меню третьего уровня, желательно сузить окно браузера до 600 пикселей, к примеру, чтобы появилась собирающая кнопка "Еще...".

Очень жду ваших советов.

рони 11.07.2015 11:34

jasper-blondin,
ни кнопки
Цитата:

Сообщение от jasper-blondin
"Еще...".

ни третьего уровня меню нигде не обнаружил.

jasper-blondin 11.07.2015 11:49

Нужно сузить окно браузера пикселей до 800, к примеру, и обновить страницу. Тогда те пункты меню, которые не поместятся, свернутся в кнопку "Еще..." (последний пункт меню). Вот там получится 3 уровня меню: главный, свернутые пункты и их подменюшки.

рони 11.07.2015 12:14

jasper-blondin,
все функции анимации по завершении выполняют callback поставьте в callback необходимые изменения css;

jasper-blondin 11.07.2015 12:32

Да, конечно, такой радикальный метод сработает.
Однако мне интересна сама причина: из-за чего возникает проблема. Это такой баг JQuery, который проявляется только в webkit и т.п. только при каких-то непонятных условиях?

Интересно то, что:
1) в Firefox все работает отлично;
2) в Chrome работа скрипта разная:
a) если открыть файл только лишь с меню -- все работает отлично;
б) если установить скрипт на сайт -- проявляется баг.

Конечно, проблема решена (криво, но решена). Но хотелось бы знать, в чем причина такого поведения.

рони 11.07.2015 12:39

jasper-blondin,
тут скорее нужен специалист по css или желающий препарировать ваш скрипт, делайте макет с локализацией проблемы, может подскажут решение.

рони 11.07.2015 12:45

jasper-blondin,
как вариант я делал сразу после анимации исправление css hide(100).css(нужные параметры); вместо hide(100, callback(нужные параметры) ) - если это не влияло на анимацию, потому что после начала анимации сss уже не больше не дополняют.

jasper-blondin 11.07.2015 12:51

Вобщем, нужно укротить свое любопытство и довольствоваться тем, что все работает.

Спасибо за дискуссию!


Часовой пояс GMT +3, время: 03:23.