OOP

S.mix(r, s[, ov, wl]) {Object} 将 s 对象的成员复制到 r 对象上.
  • ov {Boolean} override, 表示复制时是否采用覆盖模式, 默认为 true.
  • wl {Array} whitelist, 非空时, 表示仅添加该列表中的成员.
S.merge(arguments) {Object} 合并多个对象, 返回合并后的新对象.
S.augment(r, s1[, s2, ..., ov, wl]) {Object} 将s.prototype 的成员复制到 r.prototype 对象上
ov, wl, 同 mix.
S.extend(r, s[, px, sx]) {Object} 让函数对象 r 继承函数对象 s.
  • r {Function}, 子类
  • s {Function}, 父类
  • px {Object}, 需要添加/覆盖的原型成员
  • sx {Object}, 需要添加/覆盖的静态成员
S.clone(o) 创建一个普通对象或数组的深拷贝, 并且返回

模块化相关

S.add(name[, fn, config]) 添加模块到 KISSY 对象
  • name {String}: 模块名
  • fn {Function}: 注册指定模块到 KISSY 中的入口方法
  • config {Object}: 配置信息, 有如下一些可用选项
    config = {
        path: 'packages/core-min.js',                          // 脚本相对路径
        fullpath: 'http://xxxx/build/packages/core-min.js',    // 脚本绝对路径
        csspath:  'cssbase/base-min.css',                      // CSS 文件相对路径
        cssfullpath: 'http://xxxx/build/cssbase/base-min.css', // CSS 文件绝对路径
        requires: ['mod1','mod2']                              // 指定依赖的模块
    }
    
S.app(name[, sx]) 创建应用对象
  • name {String}: 应用名
  • sx {Object}: 需要添加/覆盖的静态成员
S.use(modNames[, callback, cfg]) 获取某个模块, 当某个模块加载后, 执行 callback
S.namespace(arguments) 创建命名空间
S.name('app', 'test');
S.name('app.test');

功能函数

S.ready(fn) 当DOM加载完毕时执行 fn.
S.available(id, fn) 当 id 元素可用时立刻执行fn. id必须要元素的id, 或者是id数组.
S.each(object, fn[, context]) 对 object 的每个对象, 执行fn
S.filter(arr, fn[, context]) 过滤context下的 arr 中符合 fn 的元素
S.globalEval(data) 在全局环境里执行代码片段
S.guid(pre) 返回全局唯一的 id
  • pre {String} 这个 id 的前缀, 可选
S.inArray(item, arr) 判断 item 是否在 arr 中
S.indexOf(item, arr) 获取 item 在 arr 中第一次出现的索引序号, 无则返回 -1
S.lastIndexOf(item, arr) 获取 item 在 arr 中最后次出现的索引序号, 无则返回 -1
S.later(fn[, when, periodic, o, data]) 延迟执行
  • fn {Function}: 延迟执行的函数
  • when {Number}: 延迟时间
  • periodic {Boolean}: 是否重复执行
  • o {Object}: 上下文
  • data {Array}: 传递给fn的参数
S.now() 返回当前时间
S.log(msg[, cat, src]) 输出调试信息
  • msg {String} 提示信息
  • cat {String} 类别, 可以取info, warn, error, dir, time 等 console 对象的方法名, 默认为 logo
  • src {String} 调试代码所在的原信息
S.error(msg) 抛出名为 msg 的错误异常
  • msg {String} 错误异常名
S.param(o[, sep]) 序列化对象 o, 以 sep 为分隔符
  • o {Object}: 被序列化的对象
  • sep {String}: 分隔符, 默认是 '&'
S.unparam(str[, sep]) 解析类似URI的字符串, 并返回一对象, 与 S.param 互逆
  • str {String}: 类 URI 的字符串
  • sep {String}: 分隔符, 默认是 '&'
S.substitute(str, o, regexp) 字符串模板替换
S.trim(str) 去除字符串开头/末尾空白
S.unique(a[, override]) 对数组中的元素去重
  • a {Array}: 待去重的数组
  • override {Boolean}: 默认是保留重复出现对象的第一个, 但当 override 为 true, 保留重复出现对象的最后一个
S.makeArray(o) 将 o 转成数组对象
S.getScript(url[, success, charset]) 请求脚本并执行

KISSY 成员(只读)

S.version {String} 返回版本信息.
S.Config {Object} 配置信息.
  • base: {String} 系统模块的路径
  • debug: {Boolean} 是否开启调试模式, 和 url 加上 ks-debug.
  • timeout: {Number} 默认延迟时间
S.Env {Object} 环境信息.
  • mods: 提供模块信息及其间依赖关系
  • mods.XXX.name: {String} 模块的名字
  • mods.XXX.path: {String} 模块所在的 js 文件相对路径
  • mods.XXX.fullpath: {String} 模块所在的 js 文件绝对路径
  • mods.XXX.csspath: {String} 模块关联的 css 文件相对路径
  • mods.XXX.csspath: {String} 模块关联的 css 文件路径
  • mods.XXX.charset: {String} 模块相关的文件编码
  • mods.XXX.requires: {Array<String>} 指定依赖的模块

语言类型函数

S.type(o) 获得 o 的类型
S.isEmptyObject(o) 判断 o 是否为空对象(没有任何可遍历的属性)
S.isFunction(o) 判断 o 是否为函数
S.isNull(o) 判断 o 是否为 null
S.isPlainObject(o) 判断 o 是否为普通对象(用 { } 或 new Object 创建的对象)
S.isUndefined(o) 判断 o 是否为 undefined
S.isString(o) 判断 o 是否为字符串, 类似的, 还有Boolean Number Function Array Date RegExp Object

S.UA

S.UA.trident/S.UA.webkit/ S.UA.gecko/S.UA.presto {Number} 返回各浏览器核心版本
S.UA.chrome/S.UA.safari/ S.UA.firefox/S.UA.ie/S.UA.opera/ S.UA.se360/S.UA.maxthon/ S.UA.tt/S.UA.theworld/S.UA.sougou {Number} 返回各浏览器版本
S.UA.mobile/S.UA.core/S.UA.shell {String} 返回各浏览器的内核标识

JSON, Cookie

S.JSON.parse(text) 将 text 字符串解析成 Object
S.JSON.stringify(value[, replacer, space]) 将 js 值转换成 JSON 串
  • value: {Object} 处理的值
  • replacer: {Function|Array} 定义如何转换值
  • space: {Number|String} 指定空白符
S.Cookie.get(name) 获取Cookie值
  • name: {String} cookie 名
S.Cookie.set(name, val[, expires, domain, path, secure]) 设置Cookie值
  • name: {String} cookie 名
  • value: {String} cookie 值
  • expires: {Date|Number} 过期日期
  • domain: {String} 所在域
  • path: {String} 指定路径
  • secure: {Boolean} 是否加密, http or https 发送
S.Cookie.remove(name[, domain, path, secure])
各参数同 set

其他

S.Attribute/S.Base 提供 getter/setter 支持, 对 Config 统一管理.
  • obj.get(name): 获取 obj 名为 name 的值
  • obj.set(name, val): 给 obj 设置名为 name 的值为 val, 且调用此方法会触发 beforeNameChange / afterNameChange 事件, 事件回调函数的参数为对象, 例如
    {
      newVal: 新值
      preVal: 旧值
    }
    
    当 beforeNameChange 回调函数返回 false, 则该次属性设置无效.
  • obj.reset(name): 将 obj 的变量 name 的值重置为默认值或 undefined

DOM

DOM.get(selector[, context])
默认支持一下选择器
#id    
tag    // tag 可以为 * 字符
.cls
#id tag
#id .cls
tag.cls
#id tag.cls
#id.cls
在 context 筛选 selector 的一个元素
当 选择器不支持时, 抛出异常. 可以引入Sizzle 模块, 如 S.use('sizzle', fn), 即可使用类似于 jQuery 中所有的选择器.
DOM.query(selector[, context) 在 context 筛选 selector 的所有元素
DOM.filter(selector, filter[, context]) 在 context 筛选 selector 的, 满足 filter 的元素
DOM.hasClass(selector, value) 判断目标元素是否包含某个 Class
DOM.addClass(selector, value) 添加目标元素的某个 Class
DOM.removeClass(selector, value) 删除目标元素的某个 Class
DOM.replaceClass(selector, oldClassName, newClassName) 替换目标元素的 Class 中名为 oldClassName 为 newClassName
DOM.toggleClass(selector, value[, state]) 切换目标元素的名为 value 的 Class
DOM.create(html[, props, ownerDoc]) 根据 html, 创建元素
DOM.html(selector, val[, loadScripts, callback]) 获取目标元素的 html 内容
DOM.remove(selector) 删除目标元素
DOM.attr(selector, name, val[, pass]) 获取/设置目标元素名为 name 的属性值
DOM.removeAttr(selector, name) 删除目标元素名为 name 的属性
DOM.hasAttr(selector, name) 判断目标元素是否具有 name 该属性
DOM.val(selector, value) 设置/获取目标元素的值
DOM.text(selector, value) 设置/获取目标元素的包含文本值
DOM.css(selector, name, val) 设置/获取目标元素的名为 name 的样式值
DOM.width(selector, value)/height(selector, value) 设置/获取目标元素的宽度/高度
DOM.show(selector)/hide(selector)/toggle(selector) 显示/隐藏/切换目标元素
DOM.addStyleSheet(cssText[, id]) 将 cssText 字符串作为样式添加到文档中, id 可选, 作为 style 标签的id
DOM.data(selector, name, val) 获取/设置目标元素名为 name 的值
DOM.removeData(selector, name) 删除目标元素的名为 name 的值
DOM.insertBefore(newNode, refNode) 在 refNode 之前插入 newNode
DOM.insertAfter(newNode, refNode) 在 refNode 之后插入 newNode
DOM.append(elem, parent) 在 parent 的最后一个孩子元素之后加入 elem
DOM.prepend(elem, parent) 在 parent 的第一个孩子元素之前加入 elem
DOM.parent(selector[, filter]) 获取符合条件的元素的父亲元素
DOM.next(selector[, filter]) 获取符合条件的元素的下一个兄弟元素
DOM.prev(selector[, filter]) 获取符合条件的元素的上一个兄弟元素
DOM.silblings(selector[, filter]) 获取符合条件的元素的所有兄弟元素
DOM.children(selector[, filter]) 获取符合条件的元素的所有孩子元素
DOM.contains(container, contained) 判断 container 是否包含 contained 元素
DOM.offset(elem, val)获取/设置 elem 的相对 page 的 offset 值
DOM.scrollIntoView(elem[, container, top, hscroll]) 让 container 中的 elem 滚动到视窗的可显示部分
DOM.scrollLeft()/scrollTop() 获取 document 的 scrollLeft/scrollTop 值
DOM.docWidth()/docHeight() 获取 document 的 width/height 值
DOM.viewportWidth()/viewportHeight() 获取当前 viewport 的 width/height 值
new S.Node(selector|HTMLElement) 获得符合条件的 Node 对象, 支持链式操作
S.one(selector) 获取符合条件的一个 Node 对象,
new S.NodeList(selector|HTMLElement) 获得符合条件的 NodeList 对象, 支持链式操作
S.all(selector) 获取符合条件的 NodeList 对象

S.Event

Event.on/add(target, type, fn[, scope])
  • target: {HTMLElement} 被监听的元素
  • type: {String} 监听事件类型
  • fn: {Function} 事件触发后的回调函数
  • scope: {Object} 指明回调函数在哪个作用域下执行, 默认是 this.
Event.remove(target[, type, fn, scope])
  • target: {HTMLElement} 被监听的元素
  • type: {String} 同 add
  • fn: {Function} 同 add
  • scope: {Object} 同 add
EventTarget事件目标对象
该对象有 altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which 成员
obj.fire(type, eventData)触发自定义事件
obj.detach(type[, fn])移除监听函数

Anim

new Anim ( elem, props[, duration, easing, callback ])
  • elem: {HTMLElement|String} 动画元素, 元素或选择器
  • props: {String|Object} 动画属性, 字符串或普通对象
  • duration: {Number} 动画时长
  • easing: {String|Function} 平滑函数, 可取easeNone, easeIn, easeOut, easeBoth, easeInStrong, easeOutStrong, easeBothStrong, elasticIn, elasticOut, elasticBoth, backIn, backOut, backBoth, bounceIn, bounceOut, bounceBoth
  • callback: {Function} 回调函数
anim.run()
anim.stop()

S.ajax

S.io.ajax(cfg)
  • type: {String} 请求类型, 可以取值为 GET,POST 等,默认为 GET
  • url: {String} 请求地址
  • contentType: {String}
  • async: {Boolean} 是否为异步, 默认为 true
  • data: {Object|String} 发起请求需要附加的数据,默认为 null
  • success: {Function} 请求成功的回调,回调参数为 data(内容),textStatus(请求状态),xhr(ajax对象)
  • complete: {Function} 请求完成的回调, 在 success 调用之后触发,参数同 success
  • error: {Function} 请求错误时的回调
  • jsonp: {String} 指定 callback 的别名,请求url会生成 "url?{$jsonp}=jsonp123456"
  • jsonpCallback: {String} 指定 callback 的参数, 请求 url 会生成 "url?callback={$jsonpCallback}"
  • dataType: {String} 请求数据类型,将决定返回值 data 的类型,若不指定,返回值data的类型由响应头决定, 可取值为 json | jsonp | script | xml | html | text
S.io.get(url[, data, callback, dataType])
  • url: {String} 请求地址
  • data: {Object|String} 发起请求需要附加的数据,默认为 null
  • callback: {Function} 回调函数, 各参数分别为 data(返回数据),textStatus(文本状态),xhr(ajax 对象)
  • dataType: {String} 可取值为 json,jsonp,script,xml,html,text,其中如果值为json,回调参数data为对象; 如果值为xml,回调参数为xml对象,其他情况的回调参数皆为字符串
S.io.post(url[, data, callback, dataType])
各参数同 get
S.io.jsonp(url[, data, callback])
各参数同 get
S.io.on(type, callback)
  • type: {String} 监听事件类型, 可取值为 start,complete,stop,send
  • callback: {Function} 回调函数
展开全部