javascript - 如何在使用带有按钮的 JavaScript 时淡化文本

标签 javascript css fadein

我已经有了按钮的功能,但我不知道我需要添加什么来让它淡入

myFunction = () => {
var x = document.getElementById("myDIV");
if (x.style.display === "none") {
x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}

我需要创建一个新功能还是可以将其添加到我现有的功能中? 这是我的 CSS

 opacity: 1;
  transition: 0.7s opacity;
}

#h3.fade {
    opacity: 0;
    transition: none;
}

可以看到整个代码here .

最佳答案

你的问题是你正在删除过渡,所以它导致它不过渡,而只是跳跃。一直保持过渡,只改变不透明度:

const target = document.querySelector('#target');
document.querySelector('button').addEventListener('click', () => {
  target.classList.contains('fade') 
    ? target.classList.remove('fade') 
    : target.classList.add('fade');
});
#target {
  transition: 1s opacity;
  opacity: 1;
  width: 100px;
  height: 50px;
  background: #F00;
}

#target.fade {
  opacity: 0;
}
<div id="target"></div>
<button>Toggle</button>

关于javascript - 如何在使用带有按钮的 JavaScript 时淡化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732609/

相关文章:

javascript - SWT 浏览器未在 Eclipse View 中呈现 Angular 2 页面

html - 最新的 Opera 浏览器在字体上呈现锯齿状边缘

css - Opentype 具有跨浏览器兼容性

javascript - 使用 Javascript 和 getElementById 显示 DIV

Jquery fadeOut 完整回调未运行,但 fadeIn 回调正在运行

javascript - bing map 中未触发 directionsError 事件

javascript - Jquery clone() 未按预期工作

javascript - 如何在可编辑组件(vue)中的复制/粘贴操作中过滤文本内容

javascript - 在 for 循环中延迟 fadeIn()

jQuery fadeIn 持续时间没有效果