Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с animate для скрытых блоков (https://javascript.ru/forum/jquery/33603-problema-s-animate-dlya-skrytykh-blokov.html)

Sintanial 29.11.2012 02:21

Проблема с animate для скрытых блоков
 
Всем добрый день. У меня появился вот такой вопрос:
У меня есть модальное окно на сайте, в котором есть слайдер (http://bxslider.com). При вызове модального окна, слайдер не появляется.... проблему сразу понял....так как он не может вычислить высоту блока для которого необходимо ставить слайдер, поэтому он не работает. Тоже самое происходит например для slideUp и slideDown. Если блок изначально скрыт при загрузке страницы, то слайды не работают как надо, они моментально открывают и закрывают....как будто используется show/hide.

Как избавиться, я понятия не имею. Единственное что я придумал, это перед тем как инициализировать салайдер, или накладывать эффект slideUp при клике, сначала показывать скрытый блок, потом ставить всё необходимое, и потом опять его скрывать... но этот способ ужасен так как
1) Бывает видны скрытые блоки где пол сек. при загрузке страницы, да и сам способ грубый очень....как сделать по другому не могу
придумать.
2) Подобных эффектов много, и скрытых блоков не мало ( где то 7 штук, в которых присутствуют разные эффекты, или ставятся разные плагины.....например mCustomScrollbar тоже не работает для скрытого элемента, и опять приходится показывать его, потом ставить скролл, потом опять скрывать)...поэтому это не очень хороший способ... подскажите пожалуйста, мозг уже сломал .....

З.ы. Думаю вопрос подобного характера уже поднимался, но я ничего похоже найти не могу

Sintanial 29.11.2012 12:53

Up

Serg_pnz 29.11.2012 13:33

Вероятно надо реинициализировать плагин в тот момент, когда модальное окно откроется.

Sintanial 29.11.2012 15:37

Тогда другой вопрос....у меня стоит эффект fadeIn и модальное окно медленно появляется...если реиницилизировать сразу как только окно начнет появляться...то бывает что плагин не успевает реиницилаизироваться... потому что интерпритатор в функции fadeIn не успел дойти до того места где задаётся сво-во display:block.... т.е. получается реинициализация запускается раньше чем у блока появится высота.

Если же делать после того как отработал fadeIn то получается не красиво...пользователь уже видит картинку, и потом на ней резко появляется слайдер

Serg_pnz 29.11.2012 15:53

А никак не проявить слайдер с помощью того же fadeIn, но после того, как отработал первый fadeIn? А фоном пустите гифку-спинер.
Вот примерно так http://des002.jcase.ru/gallery.html


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