繁体   English   中英

我怎样才能访问一个内的DOM元素<canvas> ?</canvas>

[英]How can I access DOM elements within a <canvas>?

我使用的是 Cytoscape 库,它本身很灵活。 但是,我已经到了需要根据特定事件动态访问特定元素的地步。

Cytoscape 在 canvas 元素中呈现数据。 这是一个例子

例如,是否可以访问任何这些节点的 innerText? 我试过循环遍历主要 canvas 的所有子元素。我什至试过在 React 中给它一个 ref 并以这种方式进行。 我在这里有什么选择? 我知道我可以用他们的 API 更改 label,但 innerText 只是我头脑中的一个例子。

canvas中的这些元素是偶DOM元素吗? 例如,我能否通过在运行时动态更改 CSS 来获取一个节点并为其提供框阴影或不同的边界半径?

canvas 中渲染的形状实际上是图片中的像素; 如果愿意,可以使用光栅图像; HTML API 中的非 canvas 节点作品,因为它们不是元素; (即使拖动事件是在内部完成的;canvas 处理鼠标事件,检测到鼠标 position,并重新绘制框架以模拟拖动事件) Cytoscape 内部保存了这些模型的数据,并以此为基础,在 canvas 上绘制像素; 因此您可以在传递给 Cytoscape 组件的数据中找到节点的文本。

这些形状、线条等的样式仅限于 Cytoscape 支持的内容(例如颜色、线宽、线条颜色),而 html、css 的样式则不能在内部节点上工作; canvas 本身是有效的元素,您可以在其上应用框阴影、边框、过滤器(反转)等,但可能没有任何用处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM