image2d
Version:
🍇 使用ECMAScript绘制二维图片。Drawing Two-Dimensional Pictures Using ECMAScript.
198 lines (168 loc) • 6.01 kB
TypeScript
import { painter } from "./painter.d";
import { point, rectSize } from "./type.d";
import { layer } from "./layer.d";
/**
* image2D对象
*/
export interface image2D_Object {
// 基本的DOM操作
/**
* 对维护的结点进行筛选后获取新的结点对象
* @param filterback 通过返回true或false来判断是否把当前面对的结点加入新创建的结点对象中
*/
filter(filterback: (index: number, node: Element) => boolean): image2D_Object,
/**
* 把当前维护的结点加到目标结点内部的结尾
* @param target 目标节点
* @param context 可选,查找上下文
*/
appendTo(target: Function | null | Element | string | image2D_Object | Array<Element | image2D_Object>, context?: null | Element): image2D_Object,
/**
* 把当前维护的结点加到目标结点内部的开头
* @param target 目标节点
* @param context 可选,查找上下文
*/
prependTo(target: Function | null | Element | string | image2D_Object | Array<Element | image2D_Object>, context?: null | Element): image2D_Object,
/**
* 把当前维护的结点加到目标结点之后
* @param target 目标节点
* @param context 可选,查找上下文
*/
afterTo(target: Function | null | Element | string | image2D_Object | Array<Element | image2D_Object>, context?: null | Element): image2D_Object,
/**
* 把当前维护的结点加到目标结点之前
* @param target 目标节点
* @param context 可选,查找上下文
*/
beforeTo(target: Function | null | Element | string | image2D_Object | Array<Element | image2D_Object>, context?: null | Element): image2D_Object,
/**
* 从页面中删除当前维护的结点
*/
remove(): image2D_Object,
// 结点查询等
/**
* 设置或获取结点中的文本
* @param content 可选,文本
*/
text(content?: string): string | image2D_Object,
/**
* 设置或获取结点中的xhtml字符串模板(相当于innerHTML)
* @param xhtmlString 可选,xhtml字符串模板
*/
html(xhtmlString?: string): string | image2D_Object,
/**
* 计算结点大小
* @param type 尺寸类型,有如下可选:
*
* "content":包含内容部分的尺寸。
*
* "padding":内容+内边距。
*
* "border":内容+内边距+边框(默认值)。
*
* "scroll":包含滚动的尺寸(不包括border)
*/
size(type?: 'content' | 'padding' | 'border' | 'scroll'): rectSize,
/**
* 修改或获取结点样式:
*
* (key):获取指定样式。
*
* (key,value):设置指定样式。
*
* ():获取全部样式。
*
* (json):设置大量样式。
*/
css(key?: any, value?: string): string | image2D_Object,
/**
* 设置或获取结点属性:
*
* (attr):获取属性。
*
* (attr,value):设置指定属性值。
*
* (json):设置大量属性。
*/
attr(attr?: any, value?: string): string | image2D_Object,
// 事件
/**
* 给维护的结点绑定事件
*/
bind(eventType: string, callback: Function): image2D_Object,
/**
* 给维护的结点解除绑定事件
*/
unbind(eventType: string, handler: Function): image2D_Object,
/**
* 获取鼠标相对当前维护的元素左上角位置
* @param event 事件
*/
position(event: Event): point,
// 数据绑定
/**
* 把数据绑定到一组结点或返回第一个结点数据
*
* 通过具体的参数来判断是获取还是绑定,有下列参数选项可选:
*
* ():不带任何参数表示获取数据。
*
* (data):带一个参数表示设置结点对象维护的全部结点数据为data。
*
* (data, calcback):和带一个参数类似,只不过绑定的数据是经过calcback函数重新计算后返回的值,该函数有二个形参:data和index。
*/
datum(data?: any, calcback?: Function): image2D_Object,
/**
* 把一组数据绑定到一组结点或返回一组结点数据
*
* 通过具体的参数来判断是获取还是绑定,有下列参数选项可选:
*
* ():不带任何参数表示获取数据。
*
* (data):带一个参数表示设置结点对象维护的全部结点数据为data。
*
* (data, calcback):和带一个参数类似,只不过绑定的数据是经过calcback函数重新计算后返回的值,该函数有二个形参:data和index。
*
* @return update
*/
data(data?: any, calcback?: Function): image2D_Object,
/**
* update上的节点追加方法
*
* @param template 模板字符串
* @param type 可选,表示模板字符串类型
*
* @return enter
*/
enter(template: string, type?: 'svg' | 'html'): image2D_Object,
/**
* update上的节点删除方法
*
* 如果结点多于数据,调用exit方法获取多余的结点
*
* @return exit
*/
exit(): image2D_Object,
/**
* 因为当前有用的结点其实是原来的和追加的,因此需要拼接这两者
*
* $$([imageObject, enter]).loop(function(data,index,target){
*
* //绘制图像
*
* // data是当前结点对象target维护的数据,index是当前结点对象序号
*
* });
*/
loop(doback: Function): image2D_Object,
// 画笔
/**
* 画笔:根据当前绑定的结点不同,获取的是不同类型的画笔,目前支持svg和canvas2D画笔
*/
painter(): painter,
// 补充
/**
* 获取位图图层
*/
layer(): layer
}