添加 fade-in/fade-out 到背景变化

Add fade-in/fade-out to background change

我是 javascript 的新手,但我终于可以正常工作了。我可以改变背景颜色。但是它很难切换,我想知道,如果我将 backgroundColor 从一个按钮更改为另一个按钮,是否可以添加 fade-in/fade-out。

var btn1 = document.getElementById("tab1");
var btn2 = document.getElementById("tab2");

btn1.addEventListener('click', function (event) {
    changeColor('blue');
});
btn2.addEventListener('click', function (event) {
    changeColor('green');
});

function changeColor(color){
  var elem = document.getElementById( "area" );
  elem.style.backgroundColor =color;

我也在考虑将颜色更改为图像。

您可以通过 CSS 设置元素的过渡,如下所示:

button {
    -webkit-transition: background-color 1000ms linear;
    -ms-transition: background-color 1000ms linear;
    transition: background-color 1000ms linear;
}

我建议查看 this documentation

您可以使用 transition 对样式更改进行动画处理,然后使用 classList.addclassList.remove 到 add/remove 包含新颜色的 类。

var btn1 = document.getElementById("tab1");
var btn2 = document.getElementById("tab2");

btn1.addEventListener('click', function(event) {
  changeColor('blue');
});
btn2.addEventListener('click', function(event) {
  changeColor('green');
});

function changeColor(color) {
  var elem = document.getElementById("area");
  elem.classList.remove('blue', 'green')
  elem.classList.add(color);
}
#area {
  padding: 50px;
  margin-bottom: 15px;
  transition: background-color 1s;
}

.green {
  background-color: green;
}

.blue {
  background-color: blue;
}
<div id='area'></div>
<button id='tab1'>button 1 </button>
<button id='tab2'>button 2 </button>