当前位置: 首页 > 知识库问答 >
问题:

HTML5画布绘制自定义光标

龚镜
2023-03-14

我有一个画布,你可以在那里画画,我希望用户看到他正在绘制的点的大小。所以我需要在画布上绘制一个10x10像素正方形的自定义光标。当然,我不想在用户移动鼠标的时候在图像上画。

我的想法是:

  1. 我可以以某种方式备份原始图像,然后每次都将其涂满
  2. 我可以用光标移动a。但如果光标离开画布,我需要转发每一次单击,并使其不可见。
  3. 我可以创建一个分层的画布,在我的画布上再加上一个画布,只用于绘制光标。

这样做最好是什么?

更新

对不起,我没有很好地解释自己。光标将需要改变颜色和对齐到一个网格,所以我真的需要画它自己。我知道对我不起作用的csscursor:url(...)

共有1个答案

裴宏壮
2023-03-14

对PitaJ和David Starkey勾选mark+1--他们是正确的。

最简单/最有效的解决方案是修改游标本身。正如前面提到的,您甚至可以为光标做自定义图像以进行颜色更改。

但是如果您绝对需要对齐到网格,那么您就必须使用分层光标画布。没有办法强制用户的光标进入网格对齐。(想想这会带来的恶作剧吧!)

1号和3号都可以。我会自己跟3号一起去。然而,“最好”取决于你。

 类似资料:
  • 我想在画布上画一段视频。为了实现这一点,我在Javascript中捕获onMouseDown和onMouseUp事件,以获得每个事件的x和y坐标(我需要在画布中设置视频的位置、宽度和高度)。 因此,每次我在画布上绘制视频时,我创建的上一个视频都应该停止,并且必须播放新的视频。两个问题: 1)视频不播放(功能只画第一帧),但他的音频可以 2) 如何停止以前绘制的视频? 演示:http://jsfid

  • 有一个代码这行,但我不知道怎么做,我只能做一个2行在这同一时间。

  • 问题内容: 是否有将SVG文件绘制到HTML5画布上的默认方法?GoogleChrome支持将SVG加载为图像(并简单地使用),但是开发者控制台会对此进行警告。 我知道将SVG转换为canvas命令的可能性,但是我希望这不是必需的。我不在乎较旧的浏览器(因此,如果FireFox 4和IE 9支持某些功能,那就足够了)。 问题答案: 编辑2019年12月16日 现在所有主要浏览器都支持Path2D

  • 我目前正在使用画布开发一个JavaFX-Drawing-Application。在GraphicsContext的帮助下,我使用beginPath()和lineTo()方法绘制线条,但我无法找到实现橡皮擦的适当方法。

  • 问题内容: 我需要知道如何在画布上绘制多边形。不使用jQuery或类似的东西。 问题答案: 使用和创建一个路径:

  • 问题内容: 似乎没有绘制椭圆形形状的本机功能。我也不是在寻找蛋形。 是否可以绘制具有2个贝塞尔曲线的椭圆形?有人遇到过吗? 我的目的是画一些眼睛,实际上我只是使用弧线。提前致谢。 解 因此,scale()更改所有下一个形状的缩放比例。Save()之前保存设置,还原用于还原设置以绘制新形状而无需缩放。 感谢Jani 问题答案: 更新: 缩放方法可能会影响笔触宽度的外观 正确的缩放方法可以保持笔画宽度