image2d
Version:
🍇 使用ECMAScript绘制二维图片。Drawing Two-Dimensional Pictures Using ECMAScript.
37 lines (31 loc) • 1.18 kB
JavaScript
import { NAMESPACE, XLINK_ATTRIBUTE } from '../../core/config';
let setAttribute = function (dom, attr, val) {
if (/[a-z]/.test(dom.tagName) && XLINK_ATTRIBUTE.indexOf(attr) >= 0) {
// 如果是xml元素
// 针对xlink使用特殊方法赋值
dom.setAttributeNS(NAMESPACE.xlink, 'xlink:' + attr, val);
} else dom.setAttribute(attr, val);
};
/**
* 设置或获取属性
* @arguments(attr):获取属性
* @arguments(attr,value):设置指定属性值
* @arguments(json):设置大量属性
*/
export default function () {
// 获取属性值
if (arguments.length === 1 && typeof arguments[0] !== 'object') {
if (this.length <= 0) throw new Error('Target empty!');
return this[0].getAttribute(arguments[0]);
}
// 设置属性值
else if (arguments.length > 0) {
for (let i = 0; i < this.length; i++) {
if (arguments.length === 1) {
for (let key in arguments[0])
setAttribute(this[i], key, arguments[0][key]);
} else setAttribute(this[i], arguments[0], arguments[1]);
}
}
return this;
};