Остановить начало переходов

#javascript #html #css

#javascript #HTML #css

Вопрос:

(Пример) Итак, у меня есть переходы, скажем, для <p> элемента моего сайта. .invert переключает его с красного на синий. У меня есть функция JS с именем invert() , и она запускается сразу, но я хочу invert() переключить ее без переходов, если это сделано при загрузке страницы.

 elm = document.getElementById("invert");

function invert() {
  elm.classList.toggle("invert");
}

invert(); 
 p {
  color: red;
  font-size: 150%;
  transition: color 1s;
}

p.invert {
  color: blue;
} 
 <p id="invert">peanut</p>
<button onclick="invert()">butter</button> 

Фрагмент кода этого не делает, но вы поняли идею! : P Просто представьте, что при выполнении кода происходит переход, когда я вызываю invert() , чтобы он фактически переключался с красного на синий. Я могу дать вам код для сайта, если хотите.

Помощь была бы очень признательна! Спасибо за ваше время!

Комментарии:

1. mtm828.github.io Посмотрите, как он переключает темный режим, если у вас был включен темный режим при последнем посещении сайта? Я хочу остановить переход, если он это делает.

2. зачем изначально применять класс invert?

3. @TemaniAfif wdym? Также это всего лишь пример, то, что я действительно пытаюсь сделать, это mtm828.github.io .

4. <p class="invert" id="invert">peanut</p>

5. @SnareHanger Эм, нет, это не подходит для моей темной темы.

Ответ №1:

Вы должны отменить переход непосредственно перед инвертированием цвета, а затем установить его снова:

 elm.style.transition = '0s';
invert();
elm.style.transition = 'color 1s';