突出显示在HTML Canvas中单击的图形点

时间:2014-03-28 14:04:50

标签: html

我目前有一个html页面,它在canvas元素中生成一个折线图。我还实现了一个功能,以便当您单击图形中的某个点时,画布下方的表格会显示该图形点的信息,如果您单击画布上没有图形点的某个位置,则会清除该信息。但是,目前没有指示您选择的图形点。

我想这样做,以便你点击的点变得更大,或突出显示,或其他东西。不幸的是,我不会想到在任何一个画布上都可以做到这一点,而不需要重新绘制整个图表。如果我在原件上面画了一个更大的点,我就需要擦除它并用较小的点替换它,以及重绘较大点所覆盖的折线图段。

我正在研究在第一个上面使用相同尺寸的第二个画布,使用z-index来控制哪个在顶部。但是,我不知道这会如何影响点击事件。如果两个画布在彼此之上,则click事件是否可以注册下部画布?它只注册较高的一个吗?我想我可以将click事件更改为顶部的任何画布,但保持画布上绘制的所有代码都相同。

有关如何解决此问题的建议吗?

1 个答案:

答案 0 :(得分:0)

解决了我自己的一些问题。

首先,点击事件只会识别顶部的任何画布。但是,我确实喜欢我说过,并将我的click事件更改为顶部画布,同时将内部的所有指令保留为顶部画布。谢天谢地,我没有使用'this'关键字,否则更改会更烦人。

为了使图形点突出显示,我首先在第一个画布上添加了第二个画布,通过使它们的位置为“绝对”并将它们分别赋予它们的z分度为0和1来将它们放在彼此的顶部。然后,在原始点击事件识别出点已被点击的if语句中,我告诉顶部画布在与第一个点(我已保存在数组中)相同的坐标上绘制一个更大的点。首先,我清楚了顶部画布,因此任何其他突出显示的点将不再突出显示。如果在点以外的其他位置单击画布,则不会突出显示任何内容。

相关问题