我在画布中有一些彩色的线条,使用mousemove事件进行扫描,该事件将返回该线条的十六进制颜色代码。
无论如何,我可以使该画布对眼睛不可见,但是当指针移到画布上时,仍返回正确的颜色代码吗?

我尝试将上下文的globalAlpha设置为透明或接近透明(0,0.1 ...),并在following fiddle中混合结果:


在Firefox中,由于透明度,收集到的十六进制返回更改的颜色,
在Chrome中,无论透明度如何,它都会返回正确的颜色(这实际上是我想要的行为)。


奇怪的是,在我的原始代码中,即使在Chrome中,具有globalAlpha=0的画布行也不再返回其原始颜色。

有人可以请客解释globalAlpha的预期行为是什么?更重要的是,还有另一种方法可以使画布对眼睛不可见,但是仍然可以通过鼠标事件来收集颜色?任何帮助表示赞赏!

最佳答案

将CSS属性opacity设置为0

当您将属性应用于画布时

#examplecanvas {
  opacity: 0;
}


它会从屏幕上消失,但是当您将鼠标悬停在屏幕上(或单击它)时,仍然可以检测到颜色。

关于javascript - 如何使 Canvas 对眼睛不可见但对鼠标移动事件不可见?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46898571/

10-12 07:24