用 SVG 画五角星
先上代码:
See the Pen draw a star by Meathill (@meathill) on CodePen.
话说前两日想起来填坑,需要用五角星做示例。正好前几天买了本 SVG 的书,就想试一下。这篇文章记录其中几个要点。
多边形 <polygon>
在 SVG 中,画多边形要用到 <polygon>,它有一个属性 points 可以用来定义各个点的座标。有了它我们就可以连点成线做出想要的多边形了。
创建 SVG 元素
以前直接使用 document.createElement() 就能创建出想要的元素,然而 SVG 并非普通的文档,所以要小小的变动一下,使用命名空间来创建合适的元素:
var svg = document.getElementById('svg')
, ns = svg.namespaceURI
, star = document.createElementNS(ns, 'polygon');
先取到页面中写好的 SVG 节点,然后取得它的命名空间,最后借由它创建需要的元素。
使用 JS 操作元素
SVG 元素都是 SVGElement,对他们进行操作是需要一点技巧的。
比如,向对变形增加顶点就需要
var point = svg.createSVGPoint();
point.x = 10;
point.y = 10;
star.points.appendItem(point);
总结
整体说来 SVG 操作还是蛮简单的,将来可能简单的绘图都直接用代码写了。
相关文章
使用 SVG 制作扇形
有时候我们需要制作扇形,比如图形化数据生成饼图的时候。使用 HTML + CSS 做不到,必须借助 SVG 帮 […]
2021-08-154 分钟
Bootstrap 发布图表库 Bootstrap Icons 1.0,该准备切换到 SVG 了
Bootstrap 团队一边开发 Bootstrap 5,一边发布了 Bootstrap Icons 1.0( […]
2020-08-303 分钟
iOS Safari 播放音频的技巧分享
开发 Web App 一直是个蛮尴尬的事情。一方面,Google 不断在推;PWA 等技术也越来越好;另一方面 […]
2024-05-2514 分钟


