【发布时间】:2021-04-12 14:49:59
【问题描述】:
我在 div 中有一个单选按钮:
<div>
<input type='radio' class='radio-btn'>
</div>
div的背景是线性渐变:
background-image: linear-gradient(to bottom, #ffffff, #fdfdfd, #fbfcfb, #fafafa, #f8f8f8, #f5f5f5, #f1f1f1, #eeeeee, #e8e8e8, #e1e1e1, #dbdbdb, #d5d5d5);
当我点击输入按钮时,我想将包含的 div 的背景更改为绿色而不进行过渡,然后立即让绿色淡出并返回原始的线性渐变。
到目前为止,这是我所拥有的:
let radioBtn = document.querySelector('.radio-btn');
radioBtn.addEventListener('click', function(e){
function changeColor(){
e.target.parentElement.style.transition = '0s';
e.target.parentElement.style.background = 'green';
}
function fadeColor(){
e.target.parentElement.style.transition = '0.3s';
e.target.parentElement.style.background = 'linear-gradient(to bottom, #ffffff, #fdfdfd, #fbfcfb, #fafafa, #f8f8f8, #f5f5f5, #f1f1f1, #eeeeee, #e8e8e8, #e1e1e1, #dbdbdb, #d5d5d5)';
}
changeColor();
setTimeout(fadeColor, 100);
})
这会将颜色更改为绿色,等待 100 毫秒,然后将其更改回原始线性渐变,但没有过渡。我已经修改了代码,但无法让它淡出……还有其他方法吗?
谢谢!
【问题讨论】:
-
遗憾的是,您不能使用带有线性渐变的过渡,请参阅stackoverflow.com/questions/7363141/…
标签: javascript css