javascript - 如何降低每次点击的不透明度

标签 javascript if-statement dom increment

我正在尝试为不透明度值创建一个 IF 函数,然后将其除以 10 以获得 (0.9 到 0.0)之间的小数,该函数在没有value (!e.target.style.opacity) 并且当 opacityValue 达到 9 时;但随后它卡在 8 中,我想触发该事件,直到不透明度的值为 0

function toEternalDarkness(e) {
    let opacityValue = 9;
    let opacityDegree; 
    if (!e.target.style.opacity) {     
        opacityDegree = opacityValue / 10;   
        e.target.style.opacity = opacityDegree;
        console.log(opacityValue);
    } else if (opacityValue > 0) {
        opacityValue--;
        opacityDegree = opacityValue / 10;
        console.log(opacityDegree);
        e.target.style.opacity = opacityDegree;        
    } else {return}

我尝试在 iIF 语句中声明 opacityDegree,但没有成功
我尝试声明一个新变量来存储 newOpacityValue 但没有成功
我在 IF ELSE 语句中尝试了一个 while 循环,它运行所有循环,直到不透明度为零;

这是我正在尝试解决的项目的链接: https://github.com/AliQTank/Etch-a-Sketch/tree/Op002

由多个 div 创建的网格,随着事件监听器鼠标悬停而改变颜色,因此我将容器背景颜色设置为黑色,以将触发的每个事件监听器的不透明度级别降低 10%,并且在 10 个事件之后,颜色必须完全透明。 有人将一种解决方案应用于按钮,但在我的项目中不起作用,因为如果我在一个单元格(div)中触发了不透明度,其他单元格将从最后一个不透明度值触发,最后一个单元格从不透明度 1 触发到 0.8 其他从 1 到 0.7,最后一个从不透明度 1 到不透明度 0

最佳答案

每次除以 10 都会让它很快消失。这对你有用吗?

const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
  if (!btn.style.opacity) btn.style.opacity = '1';
  opacity = parseFloat(btn.style.opacity);
  btn.style.opacity = opacity - 0.2;
});
<button id="btn">Click Me</button>

关于javascript - 如何降低每次点击的不透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74332129/

相关文章:

javascript - Angular Scope 事件(通过 `$broadcast` 发送)会进入事件队列吗?

javascript - 如何使用带有多个变量的 switch?

javascript - 如何解决 DOM hierarchy,Uncaught DOMException : Failed to execute '$x'

jQuery 使用 .get() 方法将类添加到对象

c# - 使用 javascript 创建 .net md5

javascript - 在 ngAfterViewInit 中使用销毁 View 进行 changeDetection

c - 带有条件的循环中的 scanf() 不起作用

mysql - MySQL 支持 "IF EXISTS"吗?

if-statement - Haskell - do block 中的语法(使用 IO)

javascript - DOM 元素可以有一个值为任意对象(不是字符串)的属性吗?