javascript - 如何使用 Canvas 使颜色褪色

标签 javascript fade html5-canvas

我有一个 HTML5 Canvas ,其中有大量正在绘制和移动的对象和图像。其中之一恰好是一个具有单一纯色(黄色)的矩形,我想让它淡出并消失。

我应该使用计时器,清除整个页面并重新绘制所有内容,并使框每次都有点褪色,还是有办法不清除整个 Canvas 并重新绘制?

最佳答案

无论如何都需要重绘,因为 <canvas>就是这样设计的。它是基于像素的,因此您不能只是说“使该矩形变亮”或类似的话。

适当的间隔是:http://jsfiddle.net/pimvdb/eGjak/84/ .

function fadeOutRectangle(x, y, w, h, r, g, b) {
    var steps = 50,
        dr = (255 - r) / steps, // how much red should be added each time
        dg = (255 - g) / steps, // green
        db = (255 - b) / steps, // blue
        i = 0, // step counter
        interval = setInterval(function() {
            ctx.fillStyle = 'rgb(' + Math.round(r + dr * i) + ','
                                   + Math.round(g + dg * i) + ','
                                   + Math.round(b + db * i) + ')';
            ctx.fillRect(x, y, w, h); // will redraw the area each time
            i++;
            if(i === steps) { // stop if done
                clearInterval(interval);
            }
        }, 30);
}

fadeOutRectangle(10, 10, 100, 100, 123, 213, 50);

关于javascript - 如何使用 Canvas 使颜色褪色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212647/

相关文章:

c# - 平滑调整大小和淡入淡出 WP 应用程序

jquery - Div 上的淡入淡出循环

javascript - 方法调用时的 meteor 表演微调器

javascript - gulp - 我必须为每个项目安装插件吗?

javascript - 由于 CORS 导致 Satellizer 登录错误

javascript - Kendo UI Linear Gauge 的反方向

jquery - 使用 jQuery 更改其他 div 上的 CSS

javascript - 无法在 webgl 中加载纹理

javascript - 创建 HTML5 无限 Canvas

javascript - 锐化 HTML5 Canvas 中的绘图