马黑PHP整站系统

svgdr教程·draw + addTo

位置: 首页 > svgdr[ 发布时间: 2024.11.14  作者: 马黑  阅读: 69 ]

draw & addTo

一、万能绘制指令 draw

指令:draw()

参数:name, option

语法:draw(name, option)

参数解释:

① name - 必须,要绘制的图形名称,例如 circle、path
② option - 必须,格式为一系列键值对的JS对象,例如 { cx: 120, y: 120, r: 100, fill: 'gray' }
* 健名若有连接符 - ,需要用引号包裹,例如 stroke-width: 4 应写成 'stroke-width': 4,否则JS报错

二、添加到指令 addTo

指令:addTo()

参数:id

语法:addTo(id)

参数解释:

id为添加到的目标元素id标识符,例如将当前绘制的对象添加到id="g1"的分组标签:addTo('g1')

以下效果使用 draw() 指令绘制而成,过程中使用 addTo() 指令给元素添加animate动画。动画可通过点击圆暂停/继续:

svgdr绘制指令(不包含JS部分):

dr.draw('circle', {cx: 150, cy: 150, r: 130, fill: 'peru', cursor: 'pointer'}); //画圆
//画矩形
dr.draw('rect', {
	id: 'rt1',
	x: 5,
	y: 5,
	width: 290,
	height: 290,
	fill: 'none',
	stroke: 'peru',
	'stroke-width': 5,
	'stroke-dasharray': 5,
});
//绘制动画并将动画授予矩形
dr.draw('animate', {
	attributeName: 'stroke-dashoffset',
	values: `0;${rt1.getTotalLength()}`,
	dur: '20s',
	repeatCount: 'indefinite'
}).addTo('rt1');
	

生成的SVG代码(不包含JS部分):

理论上 draw() 指令可以创建所有的svg标签,但它不是真的万能,比如目前它无法创建嵌套的标签,只是单纯地完成指定标签的创建。addTo() 指令不能绘制元素,但可以配合其他绘制或创建元素指令将当前的元素移动到指定id的元素,从而达成标签嵌套的目的,在这个意义上来说,作为功能性的 svgdr 指令,它也是十分强大的。

返回目录

前一篇: svgdr教程·动画
下一篇: svgdr教程·滤镜

发表评论:

       

评论列表 [1条]

#1 | 飞飞 于 2024-11-14 12:18 发布: 效果很漂亮。。虚线动态边框特别吸引人

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com