- Snap
- 1.
Snap(...) - 2.
Snap.format(token, json) - 3.
Snap.rad(deg) - 4.
Snap.angle(x1, y1, x2, y2, [x3, y3]) - 5.
Snap.is(o, type) - 6.
Snap.snapTo(values, value, [tolerance]) - 7.
Snap.getRGB(color) - 8.
Snap.hsb(h, s, b) - 9.
Snap.hsl(h, s, l) - 10.
Snap.rgb(r, g, b) - 11.
Snap.color(clr) - 12.
Snap.hsb2rgb(h, s, v) - 13.
Snap.hsl2rgb(h, s, l) - 14.
Snap.rgb2hsb(r, g, b) - 15.
Snap.rgb2hsl(r, g, b) - 16.
Snap.parsePathString(parseString) - 17.
Snap.parseTransformString(TString) - 18.
Snap.select(query) - 19.
Snap.selectAll(query) - 20.
Snap.animation(attr, duration, [easing],[callback]) - 21.
Snap.animate(from, to, setter, duration, [easing], [callback]) - 22.
Snap.fragment(varargs) - 23.
Snap.ajax(...) - 24.
Snap.load(url, callback, [scope]) - 25.
Snap.getElementByPoint(x, y) - 26.
Snap.plugin(f) - 27.
Snap.Matrix() - 28.
Snap.matrix(...) - 29.
Snap.parse(svg) - 30.
Snap.filter.blur(x, [y]) - 31.
Snap.filter.shadow(...) - 32.
Snap.filter.grayscale(amount) - 33.
Snap.filter.sepia(amount) - 34.
Snap.filter.saturate(amount) - 35.
Snap.filter.hueRotate(angle) - 36.
Snap.filter.invert(amount) - 37.
Snap.filter.brightness(amount) - 38.
Snap.filter.contrast(amount) - 39.
Snap.path.getTotalLength(path) - 40.
Snap.path.getPointAtlength(path, length) - 41.
Snap.path.getSubpath(path, from, to) - 42.
Snap.path.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) - 42.
Snap.path.bezierBBox(...) - 43.
Snap.path.isPointInsideBBox(bbox, x, y) - 44.
Snap.path.isBBoxIntersect(bbox1, bbox2) - 45.
Snap.path.intersection(paht1, path2) - 46.
Snap.paht.isPointInside(path, x, y) - 47.
Snap.path.getBBox(path) - 48.
Snap.path.toRelative(path) - 49.
Snap.path.toAbsolute(path) - 50.
Snap.path.toCubic(pathString) - 51.
Snap.path.map(path, matrix)
- 1.
- Set
- Matrix
- Element
- 1.
Element.node(x, y, width, height, refX, refY) - 2.
Element.type(tstr) - 3.
Element.attr(...) - 4.
Element.getBBOX() - 5.
Element.transform(tstr) - 6.
Element.parent() - 7.
Element.append(el) - 8.
Element.add() - 9.
Element.appendTo(el) - 10.
Element.prepend(el) - 11.
Element.prependTo(el) - 12.
Element.before(el) - 13.
Element.after(el) - 14.
Element.insertBefore(el) - 15.
Element.insertAfter(el) - 16.
Element.remove() - 17.
Element.select(query) - 18.
Element.select(query) - 19.
Element.asPX(attr, [value]) - 20.
Element.use() - 21.
Element.clone() - 22.
Element.toDefs() - 23.
Element.pattern() - 24.
Element.toPattern(x, y, width, height) - 25.
Element.marker(x, y, width, height, refX, refY) - 26.
Element.inAnim() - 27.
Element.stop() - 28.
Element.animate(attrs, duration, [easing], [callback]) - 29.
Element.data(key, [value]) - 30.
Element.removeData([key]) - 31.
Element.outerSVG() - 32.
Element.toString() - 33.
Element.innerSVG() - 33.
Element.addClass(value) - 34.
Element.removeClass(value) - 35.
Element.hasClass(value) - 36.
Element.toggleClass(value, flag)
- 1.
- 事件
- 37.
Element.click(handler) - 38.
Element.unclick(handler) - 39.
Element.dbclick(handler) - 40.
Element.undbclick(handler) - 41.
Element.mousedown(handler) - 42.
Element.unmousedown(handler) - 43.
Element.mousemove(handler) - 44.
Element.unmousemove(handler) - 45.
Element.mouseout(handler) - 46.
Element.unmouseout(handler) - 47.
Element.mouseover(handler) - 48.
Element.unmouseover(handler) - 49.
Element.mouseup(handler) - 50.
Element.unmouseup(handler) - 51.
Element.touchstart(handler) - 52.
Element.untouchstart(handler) - 53.
Element.touchmove(handler) - 54.
Element.untouchmove(handler) - 55.
Element.touchend(handler) - 56.
Element.untouchend(handler) - 57.
Element.touchcancel(handler) - 58.
Element.untouchcancel(handler) - 59.
Element.hover(f_in, f_out, [icontext], [ocontent]) - 60.
Element.unhover(f_in, f_out) - 61.
Element.drag(onmove, onstart, onend, [mcontent], [scontent], [econtent]) - 62.
Element.undrag() - 63.
Element.getTotalLength() - 64.
Element.getPointAtLength(legnth) - 65.
Element.getSubpath(from, to)
- 37.
FragmentPaper- 1.
Paper.el(name, attr) - 2.
Paper.rect(x, y, width, height, [rx], [ry]) - 2.
Paper.circle(x, y, r) - 3.
Paper.image(src, x, y, width, height) - 4.
Paper.ellipse(x, y, rx, ry) - 5.
Paper.path([pathString]) - 6.
Paper.g([varargs]) - 7.
Paper.group() - 8.
Paper.svg(x, y, ,width, height, vbx, vby, vbw, vbh) - 9.
Paper.mask() - 10.
Paper.ptrn(x, y, ,width, height, vbx, vby, vbw, vbh) - 11.
Paper.use(...) - 12.
Paper.text(x, y, text) - 13.
Paper.line(x1, y1, x2, y2) - 14.
Paper.polyline(...) - 15.
Paper.polygon(...) - 16.
Paper.gradient(gradient) - 17.
Paper.toString() - 18.
Paper.clear() - 19.
Paper.filter(filstr)
- 1.
- mina
Snap
1. Snap(...)
创建一个面或包裹已经存在SVG元素,并返回
Element对象
参数
1.1
Snap(width, height)width数值或字符串 面的宽度height数值或字符串 面的高度1.2
Snap(DOM)DOMSVG元素 被包裹进Snap结构的元素1.3
Snap(array)array数组 元素数组(返回元素集合)1.4
Snap(query)query字符串 CSS查询选择器
返回值
Element对象
2. Snap.format(token, json)
把
token中的未知值,用json中的值进行替换,并返回一个格式化后的字符串
参数
token字符串 需要被格式化的字符串
json对象 对象中属性的值将被用于替换用法
// 下述命令将绘制一个相当于矩形形状的路径paper.path(Snap.format("M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z", {x: 10,y: 20,dim: {width: 40,height: 50,"negative width": -40}}));
返回值
格式化后的字符串 字符串型
3. Snap.rad(deg)
角度转换为弧度,并返回数值型的弧度值
参数
deg数值 角度值返回值
弧度值 数值型
4. Snap.angle(x1, y1, x2, y2, [x3, y3])
返回两个点或三个点之间的夹角度数
参数
x1数值 第一个点的x坐标
y1数值 第一个点的y坐标
x2数值 第二个点的x坐标
y2数值 第二个点的y坐标
x3数值 第三个点的x坐标
y3数值 第三个点的y坐标返回值
角度值 数值型
5. Snap.is(o, type)
Snap提供的用于代替typeof的操作,判断一个值是否是某一类型
参数
o任何对象或原始值
type字符串 类型名,如string,function,number等返回值
如果给定的
o是 给定的type类型,则返回为真 布尔型
6. Snap.snapTo(values, value, [tolerance])
需要调整的值通过给定值调整到给定栅格
参数
values数组 或 数值 给定值的数组或者栅格每步的数值
value数值 需要调整的值
tolerance数值 达到距离目标值的最大距离将触发snap返回值
调整后的值 数值型
7. Snap.getRGB(color)
把颜色字符串解析为一个RGB对象
参数
color字符串 符合以下格式的颜色值:· 具体颜色值,如red,white 等;· #··· 简写的十六进制颜色值,如#000;· #······ 全写的十六进制颜色值,如#000000;· rgb(···,···,···) 通过rgb表示的颜色值,如黑色,rgb(0, 0, 0);· rgba(···,···,···, ···) 带有透明度的rgb颜色值;· rgb(···%,···%,···%)· rgba(···%,···%,···%, ···%)· hsb()· hsba()· hsl()· hsla()
返回值
rgb对象 对象 具体格式如下:{r: 数值g: 数值b: 数值hex: 字符串 HTML颜色值opacity: 数值 透明度error: 布尔型 如果给定的字符串不能被解析,则为真}
8. Snap.hsb(h, s, b)
把HSB值转换为十六进制表示的颜色值
参数
h数值 色相s数值 饱和度
b数值 具体值或亮度返回值
十六进制表示的颜色值 字符串
9. Snap.hsl(h, s, l)
把HSL值转化为十六进制表示的颜色值
参数
h数值 色相
s数值 饱和度
l数值 亮度
返回值
十六进制表示的颜色值 字符串
10. Snap.rgb(r, g, b)
把HSL值转化为十六进制表示的颜色值
参数
r数值
g数值
b数值
返回值
十六进制表示的颜色值 字符串
11. Snap.color(clr)
把颜色字符串解析为一个对象
参数
clr字符串 具体格式参考Snap.getRGB()返回值
对象 具体格式参考
Snap.getRGB()
12. Snap.hsb2rgb(h, s, v)
把一个
HSB颜色值转换成一个RGB对象
参数
h数值型 色调
s数值型 饱和度
b数值型 亮度返回值
RGB对象,格式如下{r 数值型 红色值g 数值型 绿色值b 数值型 蓝色值hex 字符型 #······ 格式的颜色值}
13. Snap.hsl2rgb(h, s, l)
把一个
HSL值转换成一个RGB对象
参数
h数值型 色调
s数值型 饱和度
l数值型 明度返回值
RGB对象,格式如下{r 数值型 红色值g 数值型 绿色值b 数值型 蓝色值hex 字符型 #······ 格式的颜色值}
14. Snap.rgb2hsb(r, g, b)
把一个
RGB值转换成一个HSB对象
参数
r数值型 红色值
g数值型 绿色值
b数值型 蓝色值返回值
HSB对象,格式如下{h 数值型 色调s 数值型 饱和度b 数值型 亮度}
15. Snap.rgb2hsl(r, g, b)
把一个
RGB值转换成一个HSL对象
参数
r数值型 红色值
g数值型 绿色值
b数值型 蓝色值返回值
HSL对象,格式如下{h 数值型 色调s 数值型 饱和度b 数值型 明度}
16. Snap.parsePathString(parseString)
工具方法,将给定的路径字符串解析为一个路径区段的数组
参数
pathString字符串或数组 路径字符串或者路径区段数组,后者将直接返回返回值
路径区段数组 数组
17. Snap.parseTransformString(TString)
工具方法,将给定的变化字符串解析为一个变化数组
参数
TString字符串或者数组 变化字符串或者变换数组,后者将直接返回返回值
变化数组 数组
18. Snap.select(query)
通过
CSS选择器来包裹一个DOM元素,使其具有Elememnt的方法
参数
query字符串 元素的CSS选择器返回值
返回当前元素 元素
19. Snap.selectAll(query)
通过
CSS选择器来包裹多个DOM元素,使其具有Elememnt的方法
参数
query字符串 元素的CSS选择器返回值
返回当前元素 元素
20. Snap.animation(attr, duration, [easing],[callback])
创建一个动画对象
参数
attr对象 最终目标的属性
duration数值型 动画持续时间,单位 毫秒easing函数mina缓动函数或用户自定义callback函数 动画结束后执行的回调函数返回值
动画对象 对象
21. Snap.animate(from, to, setter, duration, [easing], [callback])
通过运行一个函数将动画从一个数值运行到另一个数值
参数
from数值型或数组 数值或者多个数值组成大数组
to数值型或数组 数值或者多个数值组成大数组
setter函数 接受一个数值参数的函数duration数值型 动画持续时间,单位 毫秒easing函数mina缓动函数或用户自定义callback函数 动画结束后执行的回调函数返回值
mina格式的动画对象 对象 具体如下:{id 字符串 动画id 你可以认为它是只读的duration 函数 获取或设置的动画时间easing 函数 缓动函数speed 函数 获取或设置的动画速度status 函数 获取或设置的动画状态stop 函数 停止动画}
用法
var rect = Snap().rect(0, 0, 10, 10);Snap.animate(0, 10, function (val) {rect.attr({x: val});}, 1000);// 类似于rect.animate({x: 10}, 1000);
22. Snap.fragment(varargs)
利用给定元素元素列表或字符串创建一个
DOM片段
参数
varargs任意值SVG字符串返回值
Fragment
23. Snap.ajax(...)
Ajax的简单实现
参数
url字符串 URL
postData对象或字符串post请求的数据
callback函数 回调函数scope对象 回调函数的作用域或者
url字符串 URL
callback函数 回调函数scope对象 回调函数的作用域返回值
XMLHttpRequest对象
24. Snap.load(url, callback, [scope])
加载外部
SVG文件作为Fragment
参数
urlcallbackscope
25. Snap.getElementByPoint(x, y)
返回指定点上最顶层的元素
参数
x数值型 点的x坐标
y数值型 点的y坐标用法
Snap.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"});
26. Snap.plugin(f)
Snap插件方法
参数
f函数用法
Snap.plugin(function (Snap, Element, Paper, global, Fragment) {Snap.newmethod = function () {};Element.prototype.newmethod = function () {};Paper.prototype.newmethod = function () {};});
27. Snap.Matrix()
矩阵的构造函数,扩展它有一定风险。创建矩阵请使用
Snap.matrix
28. Snap.matrix(...)
实用方法。通过给定的参数返回一个矩阵
参数
a数值型
b数值型
c数值型
d数值型
e数值型
f数值型或者
svgMatrix返回值
构建的矩阵 对象
29. Snap.parse(svg)
解析
SVG片段,并且将其转换成Fragment
参数
svg字符串 svg字符串返回值
Fragment
30. Snap.filter.blur(x, [y])
返回
blur滤镜的SVG字符串
参数
x数值型 水平方向上blur的大小 单位px
y数值型 水平方向上blur的大小 单位px返回值
滤镜字符串 字符串
用法
console.log(Snap.filter.blur(5, 10)) // <feGaussianBlur stdDeviation="5,10"/>var f = paper.filter(Snap.filter.blur(5, 10)),c = paper.circle(10, 10, 10).attr({filter: f});
31. Snap.filter.shadow(...)
返回
shadow滤镜的SVG字符串
参数
dx, dy, blur, color, opacity或者dx, dy, color, opacity // blur默认4或者dx, dy, color
用法
var f = paper.filter(Snap.filter.shadow(0, 2, 3)),c = paper.circle(10, 10, 10).attr({filter: f});
32.Snap.filter.grayscale(amount)
返回
graycale滤镜的SVG字符串
参数
amount数值型 0~1之间的数值
33. Snap.filter.sepia(amount)
返回
sepia滤镜的SVG字符串
参数
amount数值型 0~1之间的数值
34. Snap.filter.saturate(amount)
返回
saturate滤镜的SVG字符串
参数
amount数值型 0~1之间的数值
35. Snap.filter.hueRotate(angle)
返回
hueRotate滤镜的SVG字符串
参数
angle数值型 旋转的角度
36. Snap.filter.invert(amount)
返回
invert滤镜的SVG字符串
参数
amount数值型 0~1之间的数值
37. Snap.filter.brightness(amount)
返回
brightness滤镜的SVG字符串
参数
amount数值型 0~1之间的数值
38. Snap.filter.contrast(amount)
返回
contrast滤镜的SVG字符串
参数
amount数值型 0~1之间的数值
39. Snap.path.getTotalLength(path)
以像素为单位,返回指定路径的长度
参数
path字符串SVG路径字符串
40. Snap.path.getPointAtlength(path, length)
返回给定路径上给定长度的点坐标
41. Snap.path.getSubpath(path, from, to)
返回指定起始、结束为止长度的子路径
参数
path字符串SVG路径字符串
from数值型 长度,单位px从路径起始点到该段的开始
to数值型 长度,单位px从路径结束点到该段的结束返回值
定义该段路径的字符串 字符串
42. Snap.path.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t)
实用方法 返回指定曲线上指定位置的坐标点
参数
p1x数值型 曲线第一个点的x坐标
p1y数值型 曲线第一个点的y坐标
c1x数值型 曲线第一个锚的x坐标
c1y数值型 曲线第一个锚的y坐标
c2x数值型 曲线第二个锚的x坐标
c2y数值型 曲线第二个锚的y坐标
p2x数值型 曲线第二个点的x坐标
p2y数值型 曲线第二个点的y坐标
t数值型 曲线上的位置(0...1)返回值
{x: 数值型 点的 x 坐标y: 数值型 点的 y 坐标m:{x: 数值型 左边锚的 x 坐标y: 数值型 左边锚的 y 坐标},n:{x: 数值型 右边锚的 x 坐标y: 数值型 右边锚的 y 坐标},start:{x: 数值型 曲线开始位置的 x 坐标y: 数值型 曲线开始位置的 y 坐标},end:{x: 数值型 曲线结束位置的 x 坐标y: 数值型 曲线结束位置的 y 坐标},alpha: 数值型 该点在曲线上切线的角度}
42. Snap.path.bezierBBox(...)
使用方法 返回指定贝塞尔曲线的边界盒子
参数
p1x数值型 曲线第一个点的x坐标
p1y数值型 曲线第一个点的y坐标
c1x数值型 曲线第一个锚的x坐标
c1y数值型 曲线第一个锚的y坐标
c2x数值型 曲线第二个锚的x坐标
c2y数值型 曲线第二个锚的y坐标
p2x数值型 曲线第二个点的x坐标
p2y数值型 曲线第二个点的y坐标或者
bez数组 贝塞尔曲线6个点的坐标数组返回值
边界盒子 对象
{x: 盒子左上角顶点的 x 坐标y: 盒子左上角顶点的 y 坐标x2: 盒子右下角顶点的 x 坐标y2: 盒子右下角顶点的 y 坐标width: 盒子的宽度height: 盒子的高度}
43. Snap.path.isPointInsideBBox(bbox, x, y)
实用方法 返回是否给定点在指定盒子当中
参数
bbox字符串 边界盒子
x字符串 点的x坐标
y字符串 点的y坐标返回值
布尔型
44. Snap.path.isBBoxIntersect(bbox1, bbox2)
实用方法 返回两个盒子是否相交
参数
bbox1字符串 第一个盒子
bbox2字符串 第二个盒子返回值
布尔型
45. Snap.path.intersection(paht1, path2)
实用方法 找出两条路径相交的坐标
参数
path1
path2返回值
[{x: 数值型 点的 x 坐标y: 数值型 点的 y 坐标t1: 数值型 路径1片段的 t 值t2: 数值型 路径2片段的 t 值segment1: 数值型 路径1片段的顺序号segment2: 数值型 路径2片段的顺序号bez1: 数组 路径1片段的贝塞尔曲线的8个点坐标表示bez2: 数组 路径2片段的贝塞尔曲线的8个点坐标表示}]
46. Snap.paht.isPointInside(path, x, y)
实用方法 返回给定点是否在指定闭合路径内部
参数
path字符串 路径字符串
x数值型 给定点的横坐标y数值型 给顶点的纵坐标注意
fill模式不影响这个方法的结果返回值
布尔型
47. Snap.path.getBBox(path)
实用方法 返回指定路径的边界盒子
参数
path字符串 路径字符串返回值
盒子边界信息对象 对象 具体如下
{x 数值型 盒子左上角顶点横坐标y 数值型 盒子左上角顶点纵坐标x2 数值型 盒子右下角顶点横坐标y2 数值型 盒子右下角顶点纵坐标width 数值型 盒子宽度height 数值型 盒子高度}
48. Snap.path.toRelative(path)
实用方法 将指定路径的坐标点转换为相对值
参数
path字符串 路径字符串返回值
转换成相对值的路径字符串 字符型
49. Snap.path.toAbsolute(path)
实用方法 将指定路径的坐标点转换成绝对值
参数
path字符串 路径字符串返回值
转换成绝对值的路径字符串 字符型
50. Snap.path.toCubic(pathString)
实用方法 将指定路径转换为一个新的所有片段用三次贝塞尔曲线表示的路径
参数
pathString字符串 或 数组 路径字符串或者 片段数组返回值
路径片段数组 数组
51. Snap.path.map(path, matrix)
将指定路径字符串按住矩阵进行转换
参数
path字符串 路径字符串matrix对象 矩阵 详见Matrix返回值
转换后的路径字符串 字符串
Set
1. Set.push()
添加一个元素到集合
返回值
添加的元素
Element
2. Set.pop()
从集合中删除一个元素
返回值
删除的元素
Element
3. Set.forEach(callback, thisArg)
为集合中的每一个元素执行给定的函数,如果函数返回
false,则停止循环
参数
callback函数 需要执行的函数
thisArg对象callback的上下文对象返回值
集合对象 对象
4. Set.aniamte(...)
给集合中的每一个元素同步执行动画
- 用法
// 对集合中的所有元素执行半径为10的动画set.animate({r: 10}, 500, mina.easein);// 或者// 给第一个元素执行半径为10动画时间为500毫秒的动画,但是给第二个元素执行半径为20动画时间为1500毫秒的动画set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]);
5. Set.bind(...)
指定如何处理特定属性时应用到一个集合
参数
attrs字符串 属性名callback函数 需要执行的函数或者
attrs字符串 属性名element元素 对集合中指定的元素应用指定的属性
或者`attrs` 字符串 属性名`element` 元素 对集合中指定的元素应用指定的属性`eattr` 字符串 attribute on the element to bind the attribute to
返回值
集合对象 对象
6. Set.clear()
移除结合中的所有元素
7. Set.splice(index, count, [insertion])
从集合中移除一定范围的
element
参数
index数值型 待删除的位置count数值型 待移除的element数量insertion...对象 待插入的element// 替换移除的元素
8. Set.exclude(element)
从集合中移除指定
element
参数
element对象 待移除的elment返回值
是否移除 布尔值
Matrix
1. Matrix.add(...)
将指定的矩阵添加到现有的矩阵当中
参数
a数值型
b数值型
c数值型
d数值型
e数值型
f数值型或者
martix对象
2. Matrix.invert()
返回当前矩阵翻转后的矩阵
返回值
返回当前矩阵翻转后的矩阵 对象
3. Matrix.clone()
返回当前矩阵的克隆矩阵
返回值
返回当前矩阵的克隆矩阵 对象
4. Matrix.translate(x, y)
变换矩阵 偏移
参数
x数值型 水平方向的偏移距离
y数值型 垂直方向的偏移距离
5. Matrix.scale(x, [y], [cx], [cy])
变换矩阵 缩放
参数
x数值型 水平方向的偏移距离
y数值型 垂直方向的偏移距离
6. Matrix.rotate(a, x, y)
变换矩阵 旋转
参数
a数值型 旋转的角度 deg
x数值型 指定旋转点的横坐标
y数值型 指定旋转点的纵坐标
7. Matrix.x(x, y)
返回指定点经过矩阵变换后的
x坐标
8. Matrix.y(x, y)
返回指定点经过矩阵变换后的
y坐标
9. Matrix.determinant(x, y) // determinant 行列式
找出指定矩阵的行列式
返回值
行列式 数值型
10. Matrix.split()
分割矩阵为基本变换
返回值
具体格式如下:
dx : 数值型 x 方向偏移大小dy : 数值型 y 方向偏移大小scaleX : 数值型 x 方向缩放大小scaleY : 数值型 y 方向缩放大小shear : 数值型 剪切rotate : 数值 旋转角度isSimple : 布尔值 是否可以通过简单转换来表示
11. Matrix.toTransformString()
返回指定矩阵的变换字符串
返回值
变换字符串 字符型
Element
1. Element.node(x, y, width, height, refX, refY)
提供一个
DOM对象的引用,以便利用户进行事件处理或其它处理
用法
// 在坐标点10,10处画一个半径为10的圆,同时绑定点击事件,点击后填充为红色var c = paper.circle(10, 10, 10);c.node.onclick = function () {c.attr("fill", "red");};
2. Element.type(tstr)
给定元素的
SVG标签名
3. Element.attr(...)
获取或设置元素的属性
参数
param字符串 属性名
params对象 包含键值对的属性对象返回值
属性值 字符串型 或者 当前元素
Elememt用法
el.attr({fill: "#fc0",stroke: "#000",strokeWidth: 2,"fill-opacity": 0.5,width: "*=2"});console.log(el.attr("fill")); // #fc0
4. Element.getBBOX()
返回指定元素的边界框描述
- 返回值 元素的边界框描述,具体如下:
{cx: 数值型 中心点 x 坐标cy: 数值型 中心点 y 坐标h: 数值型 高height: 数值型 高path: 字符串 指定元素的路径命令r0: 数值型 完全封闭的盒子圆半径r1: 数值型 能闭合的最小圆半径r2: 数值型 能闭合的最大圆半径vb: 字符串 作为视窗盒子的命令w: 数值型 宽width: 数值型 宽x2: 数值型 右边的 x 左边x: 数值型 左边的 y 左边y2: 数值型 右边的 x 左边y: 数值型 左边的 y 左边}
5. Element.transform(tstr)
获取或设置指定元素的变换
参数
tstr字符串 Snap或SVG格式的变化字符串返回值
当前元素
Element
或者
对象 具体描述如下{string: 字符串 转换字符串globalMatrix: 矩阵 应用在当前元素或者其父元素上的变化矩阵localMatrix: 矩阵 只应用在当前元素的变化矩阵diffMatrix: 矩阵 全局与本地矩阵之间不同的差异矩阵global: 字符串 全局变化字符串local: 字符串 当前变化字符串toString: 函数 返回当前属性的字符串}
6. Element.parent()
返回当前元素的父元素
返回值
当前元素的父元素
element
7. Element.append(el)
把指定的元素添加到当前元素的末尾。
el作为子元素添加到Element内部的最后面
参数
el元素 或 集合 需要添加的元素返回值
父元素
element
8. Element.add()
同
Element.append(el)
9. Element.appendTo(el)
把当前元素添加到指定元素的末尾。
Element作为子元素添加到el内部的最后面
参数
el元素 被添加元素的父元素返回值
父元素
element
10. Element.prepend(el)
把指定元素添加到的前部。
el作为子元素添加到Element内部的最前面
参数
el元素 需要添加的元素返回值
父元素
element
11. Element.prependTo(el)
把当前元素添加到指定元素的前部。
Element作为子元素添加到el内部的最前面
参数
el元素 需要添加的元素返回值
父元素
element
12. Element.before(el)
在当前元素前面插入指定元素。
el元素插到Element前面
参数
el元素 待插入的元素返回值
父元素
element
13. Element.after(el)
在当前元素后面插入指定元素。
el元素插到Element后面
参数
el元素 待插入的元素返回值
父元素
element
14. Element.insertBefore(el)
把当前元素插入到指定元素前面。
Element元素插到el前面
参数
el元素 待插入的元素返回值
父元素
element
15. Element.insertAfter(el)
把当前元素插入到指定元素后面。
Element元素插到el后面
参数
el元素 待插入的元素返回值
父元素
element
16. Element.remove()
从
DOM移除当前元素
返回值
被移除的元素 元素
17. Element.select(query)
匹配一个
CSS选择器的内嵌元素
参数
query字符串 CSS 选择器返回值
选择器查询结果
Element
18. Element.select(query)
匹配所有
CSS选择器的内嵌元素
参数
query字符串 CSS 选择器返回值
选择器查询的结果 集合(
set)或者 对象
19. Element.asPX(attr, [value])
返回当前元素指定属性的
px值
参数
attr字符串 属性名
value字符串 属性值返回值
返回查询结果
element
20. Element.use()
创建一个连接到当前元素的
<use>元素
返回值
返回
<use>元素
21. Element.clone()
创建一个当前元素的克隆元素,并插入到当前元素之后
返回值
克隆的元素
element
22. Element.toDefs()
移动元素到
<defs>区域
返回值
当前元素
element
23. Element.pattern()
已废弃 请使用
Element.toPattern()
24. Element.toPattern(x, y, width, height)
利用当前元素创建一个
pattern元素,创建此元素必须指定该元素的矩形区域
参数
x字符串或数值
y字符串或数值
width字符串或数值
height字符串或数值返回值
返回
<pattern>元素用法
可以把
pattern作为fill属性的值来使用var p = paper.path("M10-5-10,15M15,0,0,15M0-5-20,15").attr({fill: "none",stroke: "#bada55",strokeWidth: 5}).pattern(0, 0, 10, 10),c = paper.circle(200, 200, 100);c.attr({fill: p});
25. Element.marker(x, y, width, height, refX, refY)
利用当前元素创建一个
<marker>元素,创建此元素必须指定矩形的边界和参考点
参数
x字符串或数值
y字符串或数值
width字符串或数值
height字符串或数值refX字符串或数值
refY字符串或数值<maker>元素需要配合marker-start,marker-end,marker-mid,maker等属性使用。marker属性可以替换路径上任意的点;marker-mid可以替换路径上除了起始点和结束点意外的任意点返回值
返回
<marker>元素element
26. Element.inAnim()
返回一个能够操纵当前元素动画的集合
返回值
对象,具体格式如下:
{anim 对象 动画对象mina 对象 mina 对象curStatus 数值 动画状态,0-1,0表示刚刚开始,1表示刚刚结束status 函数 获取或设置动画的状态stop 函数 停止动画}
27. Element.stop()
停止当前元素的所有动画
返回值
当前元素
element
28. Element.animate(attrs, duration, [easing], [callback])
当前元素运动指定属性的动画
参数
attrs对象 目标属性的键值对
duration数值 动画持续时间 单位 毫秒
easing函数mina函数或用户自定义缓动函数
callback函数 动画执行完毕的回调函数返回值
当前元素
element
29. Element.data(key, [value])
增加或取回指点键名的键值
参数
key字符串 存储数据关键字
value任意值 存储的值返回值
如果
value参数存在,则将对应key键值设为value;如果value参数不存在,则获取对应key已经存在的数据用法
for (var i = 0, i < 5, i++) {paper.circle(10 + 15 * i, 10, 10).attr({fill: "#000"}).data("i", i).click(function () {alert(this.data("i"));});}
30. Element.removeData([key])
移除当前元素指定关键字的值,如果不指定关键字,则移除当前元素所有
data数据
参数
key 字符串 关键字
返回值
当前元素
element
31. Element.outerSVG()
返回当前元素的
SVG代码,类似于HTML中的outerHTML
返回值
当前元素的
SVG代码
32. Element.toString()
参考
Element.outerSVG()
33. Element.innerSVG()
返回当前元素内容的
SVG代码,类似于HTML中的innerHTML
返回值
当前元素内容的
SVG代码
33. Element.addClass(value)
给
Element添加指定的Class
参数
value字符串class名或者多个用空格隔开的class名返回值
原元素
element
34. Element.removeClass(value)
给
Element移除指定的Class
参数
value字符串class名或者多个用空格隔开的class名返回值
原元素
element
35. Element.hasClass(value)
判断一个
Element是否具有某个指定的class
参数
value字符串class名返回值
布尔值
36. Element.toggleClass(value, flag)
根据
flag,对一个Element,添加或移除 一个或多个 指定的class
参数
value字符串class名或者多个用空格隔开的class名
flag布尔值 是否增加或移除的标记返回值
原
elementelement
事件
37. Element.click(handler)
给当前元素添加点击事件
参数
handler函数 事件处理程序返回值
元素 对象
38. Element.unclick(handler)
给当前元素移除点击事件
给当前元素添加点击事件
参数
handler函数 事件处理程序返回值
元素 对象
39. Element.dbclick(handler)
给当前元素添加双击事件
参数
handler函数 事件处理程序返回值
元素 对象
40. Element.undbclick(handler)
给当前元素移除双击事件
参数
handler函数 事件处理程序返回值
元素 对象
41. Element.mousedown(handler)
给当前元素添加鼠标按下事件
参数
handler函数 事件处理程序返回值
元素 对象
42. Element.unmousedown(handler)
给当前元素移除鼠标按下事件
参数
handler函数 事件处理程序返回值
元素 对象
43. Element.mousemove(handler)
给当前元素添加鼠标移动事件
参数
handler函数 事件处理程序返回值
元素 对象
44. Element.unmousemove(handler)
给当前元素移除鼠标移动事件
参数
handler函数 事件处理程序返回值
元素 对象
45. Element.mouseout(handler)
给当前元素添加鼠标移出事件
参数
handler函数 事件处理程序返回值
元素 对象
46. Element.unmouseout(handler)
给当前元素添加鼠标移出事件
参数
handler函数 事件处理程序返回值
元素 对象
47. Element.mouseover(handler)
给当前元素添加鼠标经过事件
参数
handler函数 事件处理程序返回值
元素 对象
48. Element.unmouseover(handler)
给当前元素移除鼠标经过事件
参数
handler函数 事件处理程序返回值
元素 对象
49. Element.mouseup(handler)
给当前元素添加鼠标抬起事件
参数
handler函数 事件处理程序返回值
元素 对象
50. Element.unmouseup(handler)
给当前元素移除鼠标抬起事件
参数
handler函数 事件处理程序返回值
元素 对象
51. Element.touchstart(handler)
给当前元素添加触摸开始事件
参数
handler函数 事件处理程序返回值
元素 对象
52. Element.untouchstart(handler)
给当前元素添加触摸开始事件
参数
handler函数 事件处理程序返回值
元素 对象
53. Element.touchmove(handler)
给当前元素添加触摸移动事件
参数
handler函数 事件处理程序返回值
元素 对象
54. Element.untouchmove(handler)
给当前元素移除触摸移动事件
参数
handler函数 事件处理程序返回值
元素 对象
55. Element.touchend(handler)
给当前元素添加触摸结束事件
参数
handler函数 事件处理程序返回值
元素 对象
56. Element.untouchend(handler)
给当前元素移除触摸结束事件
参数
handler函数 事件处理程序返回值
元素 对象
57. Element.touchcancel(handler)
给当前元素添加触摸取消事件
参数
handler函数 事件处理程序返回值
元素 对象
58. Element.untouchcancel(handler)
给当前元素移除触摸取消事件
参数
handler函数 事件处理程序返回值
元素 对象
59. Element.hover(f_in, f_out, [icontext], [ocontent])
给当前元素添加
hover事件
参数
f_in函数hover进入事件句柄
f_out函数hover取消事件句柄
icontext对象hover进入事件句柄的上下文
ocontext对象hover取消事件句柄的上下文返回值
元素 对象
60. Element.unhover(f_in, f_out)
给当前元素移除
hover事件
参数
f_in函数hover进入事件句柄
f_out函数hover取消事件句柄返回值
元素 对象
61. Element.drag(onmove, onstart, onend, [mcontent], [scontent], [econtent])
给当前元素添加拖拽事件
参数
onmove函数 拖拽移动事件句柄
onstart函数 拖拽开始事件句柄
onend函数 拖拽结束事件句柄
mcontent对象 拖拽移动事件的上下文
scontent对象 拖拽开始事件的上下文
econtent对象 拖拽结束事件的上下文拖另外,以下事件将随着
drag事件的触发而被触发:开始时触发drag.start.<id>,结束时触发drag.end.<id>,移动时触发drag.move.<id>。同时,当一个元素被拖拽经过另一个元素时,drag.over.<id>也将被触发开始事件和句柄将调用特定的上下文,或者具有下列参数的元素自身的上下文:
`x` 数值型 鼠标位置的横坐标`y` 数值型 鼠标位置的纵坐标`event` 对象 `DOM` 事件对象
移动事件和句柄将调用特定的上下文,或者具有下列参数的元素自身的上下文:
`dx` 数值型 距离拖拽起始点的横坐标偏移距离`dy` 数值型 距离拖拽起始点的纵坐标偏移距离`x` 数值型 鼠标位置的横坐标`y` 数值型 鼠标位置的纵坐标`event` 对象 `DOM` 事件对象
结束事件和句柄将调用特定的上下文,或者具有下列参数的元素自身的上下文
`event` 对象 `DOM` 事件对象
返回值
元素 对象
62. Element.undrag()
给当前元素移除拖拽事件
63. Element.getTotalLength()
返回当前元素路径的长度,只对路径元素有效
返回值
长度 数值型
64. Element.getPointAtLength(legnth)
返回当前路径上指定长度的点的坐标,只对路径元素有效
参数
length数值型 长度 单位:像素 从路径的起始点开始,不包括non-rendering的跳跃返回值
点 对象
{x 数值型 点的横坐标y 数值型 点的纵坐标alpha 数值型 斜切角}
65. Element.getSubpath(from, to)
返回当前元素的指定起止位置的子路径,只对路径元素有效
参数
from数值型 长度 单位:像素 从路径起点开始到该段的开始to数值型 长度 单位:像素 从路径起点开始到该段的结束返回值
该段路径的路径定义字符串 字符型
Fragment
1. Fragment.select()
参考
Element.select()
2. Fragment.selectall()
参考
Element.selectall()
Paper
1. Paper.el(name, attr)
在
Paper中创建一个给定名字和属性的元素
参数
name字符串
attr对象返回值
当前元素
element用法
// 三种不同创建方式var c = paper.circle(10, 10, 10);var c = paper.el("circle").attr({cx: 10,cy: 10,r: 10});var c = paper.el("circle", {cx: 10,cy: 10,r: 10});
// 创建超链接var a = paper.el("a",{"xlink:href":"https://google.com"})a.add(c)
2. Paper.rect(x, y, width, height, [rx], [ry])
绘制矩形
参数
x数值型 左上角顶点x坐标
y数值型 左上角顶点y坐标
width数值型 宽度
height数值型 高度
rx数值型 水平圆角半径 默认值0
ry数值型 垂直圆角半径 默认值0或者rx
返回值
创建的矩形 对象
2. Paper.circle(x, y, r)
绘制圆
参数
x原点x坐标
y原点y坐标
r半径用法
// 绘制一个圆心在 50,50 半径为40的圆var c = paper.circle(50, 50, 40);
返回值
绘制的圆 对象
3. Paper.image(src, x, y, width, height)
把图片绘制到面上
参数
src图片的URI地址
xx偏移位置
yy偏移位置
width图片的宽
height图片的高返回值
图片元素 对象
或者
图片类型的
Snap Element对象用法
var c = paper.image("apple.png", 10, 10, 80, 80);// 图片资源可以使用外链?跨域?
4. Paper.ellipse(x, y, rx, ry)
绘制一个椭圆
参数
x数值型 椭圆中心点的横坐标
y数值型 椭圆中心点的纵坐标
rx数值型 横向半径
ry数值型 纵向半径返回值
绘制的椭圆 对象
用法
var c = paper.ellipse(50, 50, 40, 20);
5. Paper.path([pathString])
利用给定的路径字符串创建一个
<path>元素
参数
pathString字符串SVG格式的路径字符串路径字符串由单字符命令组成,如:
"M10,20L30,40"
上述命令使用了两个命令,
M和L,其中M带参数(10, 20),L带参数(30, 40)。命令字符大写,表示使用的是绝对坐标,命令字符小写,则表示使用的是相对坐标。上述命令表示:画笔移动到(10, 20),画一条直线到(30, 40)。具体命令如下,详情可参考 SVG path string format 或者 article about path strings at MDN:
M 画笔移动到给定坐标 x yZ 关闭路径L 绘制一条到给定坐标的线 x yH 绘制一条水平线到给定的坐标 xV 绘制一条竖线到给定的坐标 yC 绘制一条从当前点到(x, y) 的三次贝塞尔曲线,(x1, y1) 为曲线的开始控制点,(x2, y2) 为曲线的终点控制点 x1 y1 x2 y2S 绘制一条从当前点到(x, y) 的三次贝塞尔曲线,使用(x2, y2) 作为新端点的控制点。第一个控制点是前一个C 命令的终点控制点的中心对称点。如果前一个曲线不存在,当前点会被用作第一个控制点 x2 y2 x yQ 绘制一条从当前点到(x, y),控制点为(x1, y1) 的二次贝塞尔曲线 x1 y1 x yT 绘制一条从当前点到(x, y) 的二次贝塞尔曲线。控制点是前一个 Q 命令的控制点的中心对称点。如果没有前一条曲线,当前点会被用作控制点 x yA 绘制一个从当前点到(x,y) 的椭圆弧。椭圆上的 x 半径为 rx,y 半径为 ry。椭圆旋转 ry x-axis-rotation 度。如果圆弧小于 180 度,则 large-arc 为 0;如果大于 180 度,则 large-arc 为1。如果圆弧按顺时针方向绘制,则 sweep 为 1,否则为 0 rx ry x-axis-rotation large-arc-flag sweep-flag x yR Catmull-Rom curveto x1 y1 x y
- 注意 Catmull-Rom curveto 是非标准的 SVG 命令,但是,它将使操作更加简单。
- 特例:当路径字符串只包含了三个命令:
M10, 10R...Z。在这个例子中,路径连接后将自动回到它的起始点。
用法
// 绘制一条线段var c = paper.path("M10 10L90 90");
6. Paper.g([varargs])
创建一组元素
- 参数
`varargs` 嵌套在组内的元素
返回值
一组元素 对象
用法
var c1 = paper.circle(),c2 = paper.rect(),g = paper.g(c2, c1); // note that the order of elements is different或者var c1 = paper.circle(),c2 = paper.rect(),g = paper.g();g.add(c2, c1);
7. Paper.group()
参考
Paper.g([varargs])
8. Paper.svg(x, y, ,width, height, vbx, vby, vbw, vbh)
创建一个嵌套的
SVG元素
参数
x数值型 元素的X
y数值型 元素的Ywidth数值型 元素的宽度
height数值型 元素的高度vbx数值型 元素的视图盒的X
vby数值型 元素的视图盒的Yvbw数值型 元素的视图盒的宽度vbh数值型 元素的视图盒的高度返回值
svg元素 对象
9. Paper.mask()
表现与
Paper.g(),除了它是mask
返回值
mask元素 对象
10. Paper.ptrn(x, y, ,width, height, vbx, vby, vbw, vbh)
表现与
Paper.g(),除了它是pattern
参数
x数值型 元素的X
y数值型 元素的Ywidth数值型 元素的宽度
height数值型 元素的高度vbx数值型 元素的视图盒的X
vby数值型 元素的视图盒的Yvbw数值型 元素的视图盒的宽度vbh数值型 元素的视图盒的高度返回值
pattern元素 对象
11. Paper.use(...)
创建一个
<use>元素
参数
id字符串 链接到元素的id或者
idelement需要连接的元素返回值
<use>元素 对象
12. Paper.text(x, y, text)
绘制一个文字字符串
参数
x数值型 坐标的x
y数值型 坐标的ytext字符串或者数组 需要绘制的文字字符串 或者 通过<tspan>分开的嵌套的字符串数组返回值
text元素 对象用法
var t1 = paper.text(50, 50, "Snap");var t2 = paper.text(50, 50, ["S","n","a","p"]);// Text path usaget1.attr({textpath: "M10,10L100,100"});// orvar pth = paper.path("M10,10L100,100");t1.attr({textpath: pth});
13. Paper.line(x1, y1, x2, y2)
绘制一条线
参数
x1数值型 开始位置的x坐标
y1数值型 开始位置的y坐标
x2数值型 结束位置的x坐标
y2数值型 结束位置的y坐标返回值
line元素 对象用法
var t1 = paper.line(50, 50, 100, 100);
14. Paper.polyline(...)
绘制折线
参数
points数组 数个点的坐标的数据
varargs数个点的坐标返回值
polyline元素 对象用法
var p1 = paper.polyline([10, 10, 100, 100]);var p2 = paper.polyline(10, 10, 100, 100);
15. Paper.polygon(...)
绘制多边形
参数
参考
Paper.polyline(...)
16. Paper.gradient(gradient)
创建一个渐变元素 // 渐变元素作为其他图形的
fill属性的填充
参数
gradient字符串 渐变描述线性渐变描述具有如下格式:
<type>(<coords>)<color>。其中,<type>分为 线性(liner) 和 径向(radial)。L,R是绝对坐标地址,l,r是相对坐标地址。线性用x1, y1, x2, y2; 径向cx, cy, r, fx, fy,fx, fy是可选的相对于圆心的焦点。颜色用破折号连接,如#fff-#000-#0f0,每个颜色都可以有偏移,可以使用:标记,如#fff:15-#000-#0f0返回值
gradient元素 对象用法
var g = paper.gradient("l(0, 0, 1, 1)#000-#f00-#fff");var g = paper.gradient("L(0, 0, 100, 100)#000-#f00:25-#fff");var g = paper.gradient("r(0.5, 0.5, 0.5)#000-#fff");paper.circle(50, 50, 40).attr({fill: g});
17. Paper.toString()
返回
Paper的SVG代码
返回值
返回
Paper的SVG代码 字符串
18. Paper.clear()
移除所有子节点,除了
<defs>
19. Paper.filter(filstr)
创建一个
<filter>元素
参数
filstr字符串filstr滤镜相关的SVG字符串片段返回值
element对象注意: 推荐将
filter使用在一个空的SVG元素上用法
var f = paper.filter(''),c = paper.circle(10, 10, 10).attr({filter: f});
mina
1. mina(a, A, b, B, get, set, [easing])
基本动画所需的数值
参数
a
B
b
B
get
set
easing缓动函数 默认:mina.linear返回值
动画描述符 对象
{id 字符串 动画idstart 字符串end 字符串b 字符串s 字符串 动画状态(0...1)dur 字符串 动画持续时间spd 字符串 动画速度getseteasing 缓动函数 默认:`mina.linear`durationstoppauseresumeupdate}
2. mina.time()
返回当前时间 相当于
function (){return (new Date).getTime()}
3. mina.getById(id)
返回指定
id的动画
参数
id字符串 动画id
4. mina.linear(n)
默认缓动
参数
n数值型 0…1
5. mina.easeout(n)
缓动函数
参数
n数值型 0…1
6. mina.easein(n)
缓动函数
参数
n数值型 0…1
7. mina.easeinout(n)
缓动函数
参数
n数值型 0…1
8. mina.backin(n)
缓动函数
参数
n数值型 0…1
9. mina.backout(n)
缓动函数
参数
n数值型 0…1
10. mina.elastic(n)
缓动函数
参数
n数值型 0…1
11. mina.bounce(n)
缓动函数
参数
n数值型 0…1
