我想在另一个控件上面的画布上绘制,也可以访问该控件,这在HTML中可能吗?

我想在另一个控件上面的画布上绘制,也可以访问该控件,这在HTML中可能吗?,html,canvas,svg,Html,Canvas,Svg,我有一个使用Canvas或svgapi绘制线条/形状的用例,这些图形将绘制在一组控件顶部的图层上。我现在的问题是,一旦画布被放置在控件顶部,我就无法访问控件,比如单击复选框/按钮等。我如何才能启用此功能 乙二醇 在上面的示例中,由于上面的图层,我无法单击“提交”按钮,我想做的是在按钮周围画一个圆圈,同时我也应该能够单击按钮 这在HTML中可能吗?通常不能单击“通过”HTML元素,但仍然有很多选项 一个非常快速的解决方案是使用指针事件:无在画布的样式代码中 这将适用于Firefox/chrom

我有一个使用Canvas或svgapi绘制线条/形状的用例,这些图形将绘制在一组控件顶部的图层上。我现在的问题是,一旦画布被放置在控件顶部,我就无法访问控件,比如单击复选框/按钮等。我如何才能启用此功能

乙二醇


在上面的示例中,由于上面的图层,我无法单击“提交”按钮,我想做的是在按钮周围画一个圆圈,同时我也应该能够单击按钮

这在HTML中可能吗?

通常不能单击“通过”HTML元素,但仍然有很多选项

一个非常快速的解决方案是使用
指针事件:无在画布的样式代码中

这将适用于Firefox/chrome/safari,但不适用于IE

对于IE来说,你必须变得更聪明

…但是为什么不把按钮放在上面而不是把画布放在上面呢?一个快速的方法是给画布
z-index:-1在其样式中

所以现在大家一起:

<div>
   <div id="layer1" style="position:absolute;top:0px;left:10px">
         <input type="submit"/>
    </div>
    <canvas id="layer2" style="position:absolute;top:0px;left:10px; border: 1px solid black; pointer-events: none; z-index: -1;"></canvas>
</div>


我之所以需要在顶部使用画布,是因为当我绘制任何图形时,它应该在现有元素(例如,滚动条)的顶部可见,我应该能够在滚动条的顶部绘制一条线,如果我将画布放在滚动条的下方,线将位于滚动条的后面。我正在尝试使用SVG(RaphaelJs)的解决方案。我是否能够将事件添加到“svg”路径以启用笔划选择?i、 e,我应该能够单击按钮,同时我也应该能够选择笔划(我想选择、删除圆/线并在控件顶部绘制另一条线)是的,使用RaphaelJs,您应该能够将事件添加到您创建的任何svg路径中,并将其视为对象。现在我想了想,svg可能比canvas更适合您想要做的特定事情。
<div>
   <div id="layer1" style="position:absolute;top:0px;left:10px">
         <input type="submit"/>
    </div>
    <canvas id="layer2" style="position:absolute;top:0px;left:10px; border: 1px solid black; pointer-events: none; z-index: -1;"></canvas>
</div>