javascript - 改变 Canvas 元素的颜色

标签 javascript css html canvas

我正在尝试动态更改在 Canvas 上绘制的线条的颜色...

ctx.moveTo(0, 0);
ctx.lineTo(0, 200);
ctx.strokeStyle = "Grey"

可能是鼠标悬停事件或按下按钮或鼠标单击事件,我想更改线条的颜色或将其设为粗体。是否可以通过添加事件来更改颜色,或者是否可以为特定元素的事件赋予样式?

最佳答案

非常接近。从某种意义上说,您不能真正“更改” Canvas 上元素的颜色,因为 it has no scene graph ,或者换句话说,它没有在 Canvas 上绘制的内容的历史记录。要更改线条的颜色,您必须重新绘制线条。

ctx.moveTo(0, 0);
ctx.lineTo(0, 200);
ctx.strokeStyle = "Grey";
ctx.stroke();

// To make the line bold and red
ctx.moveTo(0, 0);
ctx.lineTo(0, 200);
ctx.strokeStyle = "Red";
ctx.lineWidth = 5;
ctx.stroke();

如果 Canvas 上有更复杂的场景,您将不得不重新绘制整个场景。有许多 Javascript 库可以扩展 canvas 标签的基本功能,并提供其他绘图功能。你可能想看看 Processing , 看起来相当令人印象深刻。

关于javascript - 改变 Canvas 元素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792955/

相关文章:

javascript - 将 JavaScript 变量值分配给 JSP 整数变量

javascript - JQuery,检索子孙

css - 如何使背景图像可访问?

javascript - XMLHttpRequest.send 相对路径失败

javascript - 单击时在公式 (div) 中显示下一个选项卡

javascript - IE8 版本 8.0.7601 中的对象预期错误

javascript - 无法使用 Ajax 调用返回的 json 数据创建选择元素

css - 如何防止 JQueryUI 上下文菜单出现在 IE9 中加载到 IFrame 中的 PDF 下方

jquery - 关闭 Canvas 响应菜单在页面加载时闪烁 - js 和 bootstrap 3

css - 如何在 Bootstrap 3.3.6 中定义轮播大小