javascript - js背景颜色过渡

标签 javascript transition

我有以下代码,我希望“矩形”元素(这是一个 Canvas 元素)将颜色从黑色转换为白色。事实并非如此。请指教:

var background = document.getElementById("rect");

setInterval(function() {
    for (i=0;i<255;i++) {
        background.style.backgroundColor = 'rgb(' + [i, i, i].join(',') + ')';
    }
}, 900);

最佳答案

通过循环更改颜色,您可以有效地一次性完成所有操作。相反,每个间隔回调进行一次更改:

var background = document.getElementById("rect");

var i = 0;
var timer = setInterval(function() {
    background.style.backgroundColor = 'rgb(' + [i, i, i].join(',') + ')';
    if (++i > 255) {
        clearInterval(timer);
    }
}, 900);

请注意,在每次更改 900 毫秒和 255 次更改时,这将需要很长时间才能完成,因此您可能需要调整间隔。

以下是使用 20 毫秒间隔的示例:

var background = document.getElementById("rect");

var i = 0;
var timer = setInterval(function() {
  background.style.backgroundColor = 'rgb(' + [i, i, i].join(',') + ')';
  if (++i > 255) {
    clearInterval(timer);
  }
}, 20);
#rect {
  height: 4em;
}
<div id="rect"></div>

关于javascript - js背景颜色过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33706099/

相关文章:

javascript - 定义自定义路由的 NodeJS Express

javascript - vuex中模块的命名空间到底是什么

javascript - 去除单引号字符转义

javascript - 如何在 JavaScript 中使一个函数仅在另一个函数完全完成后才启动?

javascript - jQuery 表单插件

CSS 过渡反转效果

javascript - 将 div 移出屏幕的最佳方式?

html - Microsoft Edge 悬停错误

javascript - 使用 React Transition Group 离开组件动画

Android 用于按钮单击的扩展圆圈动画