如何最少代码,在 HTML 里用 DOM 元素画点与线?

2018-08-02 14:28:06 +08:00
 zjsxwc

如何最少代码,在 HTML 里用 DOM 元素画点与线?

一个 Point 就是一个二维点,有横纵坐标 x 与 y 两个属性,

一个 Line 就是 2 个 Point 相连,

我现在有一堆这样的 Point 点和 Line 线对象,要生成 HTML 文本,使用 DOM 的方式来体现。

现在想法是一个 div 当 Point,硬编码 style 里 position 为 absolute,然后改 left 和 top 的值

对于如何用 dom 画线我还不知道,怎么做?

3339 次点击
所在节点    程序员
11 条回复
per
2018-08-02 14:29:07 +08:00
Canvas
zjsxwc
2018-08-02 14:29:59 +08:00
@per

canvas 能不能监听到 点击线 的事件?
Sparetire
2018-08-02 14:30:57 +08:00
svg
marcong95
2018-08-02 14:32:54 +08:00
html 内嵌 svg 了解一下

如果不想用 svg 就 absolute 的 div,设置 top left width border transform
per
2018-08-02 14:39:52 +08:00
@zjsxwc 可以吧 https://stackoverflow.com/questions/28842520/click-on-line-in-canvas 我没试过。
如果自己做觉得麻烦可以用一下百度的 echarts,就是小需求的话有点大材小用了
forgcode
2018-08-02 14:42:07 +08:00
设置 border 当线就可以!
OSF2E
2018-08-02 15:49:48 +08:00
DOM + CSS3 2d 转换
AlphaTr
2018-08-02 19:35:57 +08:00
推荐 canvas 的库 spritejs,可以画点和线,并对事件做响应~
OSF2E
2018-08-03 05:39:51 +08:00
画直线的原理就是将 DOM 元素利用 CSS3 的 transform 属性中的 rotate 方法进行旋转,可以自定义“线段”的两个点的坐标以及“线段长度”以及“线段粗细”等样式。

抽空练手做了一个 demo,利用 DOM 和 CSS 画正多边形,多边形的边数可以自定义。
httpss://tuhui.coding.me/data-visualization-engine/
weixiangzhe
2018-08-03 08:43:28 +08:00
svg 啊😯
zhzer
2018-08-03 14:27:41 +08:00
dom 就不是这么用的....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/476276

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX