
zepto源码分析
chengyu_wang
爱学习,爱编程,爱静静
展开
-
Zepto源码之callback模块
整体结构;(function($){ $.Callbacks = function(options) { Callbacks = { // code } return Callbacks }})(Zepto)从整体上来看,我们可以看到,其实就是向 Zepto 对象上添加了一个 Callbacks原创 2018-01-12 14:56:00 · 318 阅读 · 0 评论 -
Zepto源码之fx_methods模块
;(function($, undefined){ var document = window.document, origShow = $.fn.show, origHide = $.fn.hide, origToggle = $.fn.toggle // 内部方法,主要是用于配置参数,然后调用 $.animate function anim(el, speed, opa原创 2018-01-16 14:44:17 · 358 阅读 · 0 评论 -
Zepto源码之fx模块
;(function($, undefined){ var prefix = '', eventPrefix, vendors = { Webkit: 'webkit', Moz: '', O: 'o' }, testEl = document.createElement('div'), supportedTransforms = /^((translate|rotat原创 2018-01-16 14:18:23 · 476 阅读 · 0 评论 -
Zepto源码之deferred模块
这个其实就是一种对 Promise/A+ 规范的实现。;(function($){ var slice = Array.prototype.slice function Deferred(func) { // 用于储存状态切换的方法名,与对应的执行方法 // $.Callback({once:1,memory:1}) 用来表示只执行一次,且立即触发 va原创 2018-01-15 16:21:53 · 567 阅读 · 0 评论 -
Zepto源码之form模块
;(function($){ $.fn.serializeArray = function() { var name, type, result = [], add = function(value) { // 内部方法 add ,如果传入的参数存在 forEach 方法,那么通过 forEach 调用 add 方法 // 如果不存在 forEach原创 2018-01-15 13:54:25 · 296 阅读 · 0 评论 -
Zepto源码之selector模块
使用的正则: (.):(\w+)(?:\(([^)]+)\))?$\s图形化展示: ;(function($){ var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches // 判断元素是否可见 function visible(elem){ // 先将元素转化成一个 zepto 对原创 2018-01-15 10:47:08 · 453 阅读 · 0 评论 -
Zepto源码之gusture模块
gesture 模块是针对 IOS 系统上浏览器的 gesture 事件进行的封装。;(function($){ // 判断系统是不是 ios if ($.os.ios) { var gesture = {}, gestureTimeout // 获取目标节点,如果目标节点不是元素节点,那么获取父节点 function parentIfText(nod原创 2018-01-15 10:11:20 · 422 阅读 · 0 评论 -
Zepto源码之touch模块
;(function($){ var touch = {}, touchTimeout, tapTimeout, swipeTimeout, longTapTimeout, longTapDelay = 750, gesture, down, up, move, eventMap, initialized = false // 滑动方向原创 2018-01-13 21:54:52 · 1052 阅读 · 0 评论 -
Zepto源码之工具函数
$.each 遍历数组元素或以key-value值对方式遍历对象。回调函数返回 false 时停止遍历。关于为什么使用它,而不使用原生的 forEach 方法,我的看法是 .each传入参数是index,element而forEach的传入参数是element,index,arr。所以使用.each 传入参数是 index, element 而 forEach 的传入参数是 ele原创 2018-01-05 11:16:01 · 252 阅读 · 0 评论 -
Zepto源码之辅助函数
用于判断类型的内部函数// class2type对象与toString方法的定义class2type = {}toString = class2type.toString// 调用 $.each 给 class2type 对象设置属性与参数,里面有全部常用的参数类型// PS:说多一句,ES6中新增Symbol类型$.each("Boolean Number String Fu原创 2018-01-04 17:31:43 · 535 阅读 · 0 评论 -
Zepto源码之代码结构
源码GITHUB地址: git@github.com:madrobby/zepto.git首先我们查看一下代码结构 其中 zepto.js 是其中主文件,本篇文章主要讲述的内容就是它:代码结构我们首先使用一下代码折叠,查看一下主要结构 var Zepto = (function(){ // code})()由此我们可以看出 zepto 使用的原创 2018-01-02 12:05:57 · 326 阅读 · 0 评论 -
Zepto源码之$.fn工具函数
$.fn.get 从当前对象集合中获取所有元素或单个元素。当index参数不存在的时,以普通数组的方式返回所有的元素。当指定index时,只返回该置的元素。这点与eq不同,该方法返回的是DOM节点,不是Zepto对象集合。get: function(idx){ return idx === undefined ? slice.call(this) : this[idx原创 2018-01-08 10:49:08 · 973 阅读 · 0 评论 -
Zepto源码之assets模块
;(function($){ var cache = [], timeout $.fn.remove = function(){ return this.each(function(){ if(this.parentNode){ if(this.tagName === 'IMG'){ cache.push(this)原创 2018-01-11 11:13:57 · 304 阅读 · 0 评论 -
Zepto源码之stack模块
;(function($){ $.fn.end = function(){ return this.prevObject || $() } $.fn.andSelf = function(){ return this.add(this.prevObject || $()) } 'filter,add,not,eq,first,last,find,closes原创 2018-01-11 11:56:56 · 242 阅读 · 0 评论 -
Zepto源码之ios3模块
;(function(undefined){ // 针对 iOS 3.2 及以下版本的 ipad, iphone 自带浏览器String对象不带trim做的浏览器polyfill if (String.prototype.trim === undefined) // fix for iOS 3.2 String.prototype.trim = function(){ return原创 2018-01-11 14:27:18 · 258 阅读 · 0 评论 -
Zepto源码之ie模块
;(function(){ try { getComputedStyle(undefined) } catch(e) { var nativeGetComputedStyle = getComputedStyle window.getComputedStyle = function(element, pseudoElement){ try {原创 2018-01-12 10:22:04 · 227 阅读 · 0 评论 -
Zepto源码之data模块
;(function($){ var data = {}, dataAttr = $.fn.data, camelize = $.camelCase, exp = $.expando = 'Zepto' + (+new Date()), emptyArray = [] // 获取 node 节点的指定属性名的值 function getData(node, name) {原创 2018-01-12 11:27:13 · 327 阅读 · 0 评论 -
Zepto源码之Ajax模块
;(function($){ var jsonpID = +new Date(), document = window.document, key, name, rscript = /)/gi, scriptTypeRE = /^(?:text|application)\/javascript/i, xmlTypeRE =原创 2018-01-19 15:20:54 · 290 阅读 · 0 评论