@Chalovik

Почему opacity плавно не меняется?

Все привет)
У блока заданы св-ва:
display: none;
	opacity: 0;
	will-change: opacity;
	transition: opacity 0.3s;

Через css opacity меняется плавно, а через js нет (блок мгновенно появляется). Почему так происходит?
el.style.cssText = 'display: block; opacity: 1';
или
el.style.cssText = 'will-change: opacity; transition: opacity 0.3s; display: block; opacity: 1';

Никакой разницы.
Я знаю, что можно через цикл. Но это уже слишком... так нельзя. Нужно через назначение 1 св-ву opacity.
  • Вопрос задан
  • 508 просмотров
Решения вопроса 1
Скорее всего потому, что у вас не сохраняется первоначальный параметр opacity. То есть у вас есть есть первоначальное значение, вы его заменяете другим (и задаете скорость 0.3с), так это работает на CSS. На JS же, вы просто стираете навсегда первоначальное значение, и заменяете это первоначальное значение своим + то что оно должно идти 0.3s. Поэтому браузеру неоткуда считать первое значение и провести анимацию, так как вы это значение просто убираете.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@svetlov97
Попробуй через кейфрейм
Ответ написан
Комментировать
one_day
@one_day
плавно а js нужно делать через animate
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы