jQuery fadeIn() не достигает полной непрозрачности

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

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

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


person Andrew    schedule 02.11.2016    source источник
comment
Если он останавливается, его останавливает что-то еще, и вы должны добавить этот код. Обычно такие проблемы решаются добавлением .stop(true, true) или даже finish() из jQuery где-нибудь в анимации?   -  person adeneo    schedule 03.11.2016


Ответы (1)


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

Мое конкретное решение заключалось в следующем:

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

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

person Andrew    schedule 02.11.2016