gpt4 book ai didi

javascript - 为什么在删除类时应用转换?

转载 作者:行者123 更新时间:2023-11-30 06:23:00 25 4
gpt4 key购买 nike

<分区>

Here is an example of my problem

我有一个 div 和一个 button。每次单击按钮时,div 都会将其 background-color 更改为随机颜色。

button.addEventListener('click', function(e){
e.preventDefault();
setRandomColor();
});

默认情况下,div 有一个名为 transition-on 的类,它向 background-color 应用过渡。

<div class="block transition-on"></div>
<button>Change</button>

CSS:

.transition-on {
transition: background-color 0.5s
}

如果我在应用随机 background-color 之前删除了这个类,然后在之后重新应用这个类,转换仍然适用。

我的意图是在应用随机颜色时暂时移除过渡。

button.addEventListener('click', function(e){
e.preventDefault();
block.classList.remove('transition-on');
setRandomColor();
block.classList.add('transition-on');
});

有人知道为什么会这样吗?

编辑:

引用@ths 的回答 - 使用 setTimeout 确实产生了我需要的结果,但现在我想知道为什么有必要使用超时。

临时禁用 css 转换真的需要超时吗?

  • 删除过渡类
  • 给方 block 上色
  • 将过渡类添加回来

这应该在逻辑上改变颜色而无需过渡

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com