使用svg和js画一个圆环

JavaScript028

使用svg和js画一个圆环,第1张

var path = svgdoc.createElement("path")

path.setAttribute("d","M400 400 L400 300 A400 400 90 0 1 500 400 Z")

path.setAttribute("style","fill:nonestroke:#00fstroke-width:2")

svgdoc.rootElement.appendChild(path)

这个代码是画四分之一个圆,圆环你自己算下坐标,用PATH画,A是画弧线的

path的相关知识,你百度你里面看下,这里就不多说了

看到网页上炫酷的图形轮廓线路径动画你是否会动心,想要自己来制作一个呢?其实这个特效实现起来并不难,使用轻量级HTML5插件jquery-drawsvg就可以实现了,jquery-drawsvg是一款轻量级的使用jQuery来绘制SVG图形轮廓线路径动画的插件。该插件使用jQuery内置的动画引擎来使SVG元素中path元素产生动画,其底层实现使用的是stroke-dasharray和stroke-dashoffset属性。

该SVG路径动画插件的特点有:

轻量级,压缩后小于2kb

使用简单

支持Easing过渡动画效果

演示地址:http://www.htmleaf.com/Demo/201509112558.html

插件下载地址:http://down.htmleaf.com/1509/201509111546.zip

使用方法:

使用该SVG图形轮廓线路径动画插件需要引入jQuery和jquery.drawsvg.js文件。

<script src="js/jquery.min.js"></script>

<script src="js/jquery.drawsvg.js"></script>

初始化插件

在页面DOM元素加载完毕之后,可以通过下面的方法来使SVG图形生成轮廓线动画效果。

首先将初始化的对象实例保存为一个变量:

var mySVG = $('#my_svg_element').drawsvg()

然后就可以执行动画效果了:

mySVG.drawsvg('animate')

配置参数

下面是该SVG路径动画创建的可用配置参数:

参数类型默认值描述durationInteger1000完成每一个路径动画的持续时间staggerInteger200每一个路径动画开始前的延迟时间easingStringswing使用jQuery

Easing插件的过渡动画效果reverseBooleanfalse是否反向绘制callbackFunctionfunction()

{}路径动画完成之后的回调函数

SVG元素是一种特殊的DOM元素,可以使用CSS以及一般的JS类库来实现动画控制。但是这些方法都没提供SVG动画样式属性的完整控制,现在介绍一个专门的SVG动画类库Snap.svg,其github地址为: https://github.com/adobe-webplatform/Snap.svg

Snap.svg提供多种安装方式。

功能描述: 创建或加载已有的SVG元素。

参数说明:

返回值: SVG元素

功能描述: 根据JS选择器加载SVG元素内已有的图形元素。

参数说明:

返回值: 选择器命中的元素Element,当存在多个命中的元素时,只返回第一个元素

功能描述: 在SVG元素内绘制一个圆。

参数说明:

返回值: 新建的circle元素Element

功能描述: 在SVG元素内绘制一条Path。

参数说明:

返回值: 新建的path元素Element

功能描述: 在SVG元素内绘制一个矩形。

参数说明:

返回值: 新建的rect元素Element

功能描述: 在一段时间内匀速变更相关属性到目标值。

参数说明:

返回值: 动画对象

功能描述: 根据设置的参数,执行动画操作。

参数说明:

返回值: mina格式的动画对象

功能描述: 执行位移操作。

参数说明:

功能描述: 使推行围绕指定的圆心,旋转一定角度。

参数说明:

初始化参考上面“基本实现步骤”中的相关描述,后续只描述动画控制部分。

《Snap.svg API文档》

《使用 Snap.svg 制作动画》