0

我正在创建一个颜色选择器,我让它使用渐变从 HTML5 画布中提取颜色。大多数时候它显示正确的颜色,但有时它会随机显示白色或黑色。我在下面有一个演示,它记录了所有的黑白(除了左上角和底部像素)。

演示:http: //jsfiddle.net/ek2kD/

有问题的代码在最底部是这样的:

function getColor()
{
    var pixelColor = contextTone.getImageData(mouseXGo, mouseYGo, 1, 1).data;
    var hex = "#" + ("000000" + ((pixelColor[0] << 16) | (pixelColor[1] << 8) | pixelColor[2]).toString(16)).slice(-6);
    document.getElementById("preview").style.backgroundColor = hex;
}

(我删除了上面片段的日志记录代码)

为什么在顶部渐变的圆圈周围拖动时会闪烁白色和黑色?

4

1 回答 1

1

警告:在阅读之前让你的头离任何墙壁足够远:-)

你正在测量......光标的颜色(黑色=='#000000'),这就是为什么你有那些奇怪的零。
要快速查看,只需return;在 : 的开头输入,drawCursor()不要再为零。在用内部测量颜色之前
修复它(重新)绘制:getColor()mouseMoveListener()

function mouseMoveListener(evt) {
    // same code here ...
    draw();
    getColor();
    drawCursor();
}
于 2014-02-16T05:50:14.807 回答