我使用Canvas(HTML 5)画线,因为线/形状并不像在画布对象存储,我不能附加独特的事件给它(例如onmouseclick)获取线路坐标在Javascript
祝要将onmouseover事件附加到某行,是否可以通过使用Javascript在Canvas中了解鼠标是否位于特定行上(使用其2 X和2 Y坐标)。这会工作,为不同的线路宽度(例如:2,5像素)
要作为整个项目是建立在画布
请指点避免使用SVG
我使用Canvas(HTML 5)画线,因为线/形状并不像在画布对象存储,我不能附加独特的事件给它(例如onmouseclick)获取线路坐标在Javascript
祝要将onmouseover事件附加到某行,是否可以通过使用Javascript在Canvas中了解鼠标是否位于特定行上(使用其2 X和2 Y坐标)。这会工作,为不同的线路宽度(例如:2,5像素)
要作为整个项目是建立在画布
请指点避免使用SVG
您需要使用数学公式计算线的面积以及某个点是否与其相交。
下面是一个基本的例子:
嗨,刚刚阅读你提到的文章(点矩形公式),这似乎是一个矩形,是否有一些LINE的公式 – Akash
因为你希望它适用于不同宽度的线条,你可能应该使用rect公式。比1px厚的一条线基本上是一个填充矩形:) –
有一个功能isPointInPath(x,y)。如果某个点位于当前路径上,它将返回true。 你将不得不为你想要检查的每一行打电话,最好的方法是在你画的同时。
最好的方法是使用一些画布框架。看看“LibCanvas :: Creating Lines”(不要忘记在画布上的dblClick)
你有没有考虑过像[fabric.js](http://kangax.github.com/fabric.js/demos/kitchensink/)这样的canvas抽象库?这会使观察点击或鼠标悬停等事件变得微不足道。 – kangax