2016-11-02 3 views
1

Я звоню fadeIn(200) и fadeOut(200), чтобы показать и скрыть загружаемое изображение на странице, пока на странице запускаются любые сценарии ajax.jQuery fadeIn() не достигает полной непрозрачности

Однако я обнаружил, что, когда сценарий занимает меньше времени, чем 200 мс для запуска, элемент застревает с частичной непрозрачностью (например, 0,88) на нем, предположительно потому, что fadeIn() был прерван в этой точке при исчезновении. После этого все последующие замирания останавливаются при этой непрозрачности, он никогда не достигнет полной непрозрачности 1.

Может ли это быть связано с очередью анимации? Возможно, есть способ заставить анимацию закончить или как-то сбросить непрозрачность, если она прерывается?

+0

Если он остановится, то еще остановить его, и вы должны добавить этот код. Как правило, решаются такие проблемы, добавляя '.stop (true, true)' или даже 'закончить()' jQuery где-нибудь в анимации? – adeneo

ответ

0

Хорошим решением этой проблемы является использование fadeTo() вместо fadeIn() и fadeOut(). Эта функция позволяет вам установить конкретную непрозрачность адресата, которая, как представляется, устраняет проблему застревания полузабытой.

Мой конкретное решение было:

Заменить fadeIn(200) с fadeTo(200,1)

Заменить fadeOut(200)fadeTo(200,0) с