jQuery动画的实现
摘要:没有引入deferred机制,其余流程都有了//////////////创建动画缓动对象 //////////////function Tween(value, prop, animation) { this.elem = animation.elem; this.prop ...
阅读全文
posted @
2015-02-11 10:27
【艾伦】
阅读(5169)
推荐(5) 编辑
动画requestAnimationFrame
摘要:前言在研究canvas的2D pixi.js库的时候,其动画的刷新都用requestAnimationFrame替代了setTimeout 或 setInterval但是jQuery中还是采用了setInterval,我这章就研究下顺便改造下jQuery的动画定时器jQuery动画的实现考虑到兼容与...
阅读全文
posted @
2015-02-10 11:25
【艾伦】
阅读(12819)
推荐(12) 编辑
jQuery源码分析系列(40): 动画设计
摘要:前言jQuery动画是通过animate这个API设置执行的,其内部也是按照每一个animate的划分封装了各自动画组的行为,包括数据过滤、缓动公式、一些动画默认参数的设置、元素状态的调整、事件的处理通知机制、执行等等换句话说,我们可以把animate看作一个对象,对象封装自己的一系列属性与方法。j...
阅读全文
posted @
2015-02-09 09:06
【艾伦】
阅读(9128)
推荐(25) 编辑
sizzle编译函数
摘要:一个人去完成一件事情,如果派多个人去做的话,只要配合默契,效率比一个人做肯定要高,效率提高,所需的时间就减少了。如果只能一个人完成,那么必须设法提高自己的劳动效率,这个提高可以是量的改变也可以是质的改变。我把这个量的改变称为空间上的改变,也就是说空间和时间是可以相互转换的。 按照解析原理与过滤器的原理一次用循环递归去匹配查找,这样的效率是很慢的,那么sizzle从给1.8开始就引入了编译的概念,...
阅读全文
posted @
2014-09-15 11:30
【艾伦】
阅读(1157)
推荐(1) 编辑
jQuery的Internal DSL
摘要:JQuery的核心理念是write less,do more(写的更少,做的更多),那么链式方法的设计与这个核心理念不谋而合。那么从深层次考虑这种设计其实就是一种Internal DSL。DSL是指Domain Specific Language,也就是用于描述和解决特定领域问题的语言我们贴一段代码...
阅读全文
posted @
2014-08-04 16:28
【艾伦】
阅读(695)
推荐(1) 编辑
sizzle分析记录: 自定义伪类选择器
摘要:可见性:hidden:visible隐藏对象没有宽高,前提是用display:none处理的jQuery.expr.filters.hidden = function( elem ) { // Support: Opera -1; };}),取空递归这个节点,排除nodeType大于6...
阅读全文
posted @
2014-07-22 10:32
【艾伦】
阅读(1591)
推荐(2) 编辑
sizzle分析记录:分解流程
摘要:Name: Newsletter: 1 2 3 js$("form div > p[name=aaron]")解析的流程:编译器:分5个步骤涉及: TAG元素 关系选择器 属性选择器1:通过tokenize词法分析器分组2:遍历tokens,从右边...
阅读全文
posted @
2014-07-21 12:08
【艾伦】
阅读(1764)
推荐(6) 编辑
sizzle分析记录:属性选择器
摘要:源码部分 通过Sizzle.attr匹配出值 然后通过表达式刷选计算 "ATTR": function( name, operator, check ) { return function( elem ) { var result = Sizzle.attr( elem, name ); if ( result == null ) { ...
阅读全文
posted @
2014-07-19 18:00
【艾伦】
阅读(1393)
推荐(0) 编辑
sizzle分析记录:关于querySelectorAll兼容问题
摘要:querySelector和querySelectorAll是W3C提供的 新的查询接口目前几乎主流浏览器均支持了他们。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera。万能的sizzle在高版本的浏览器中复杂的选择器尽量走querySelectorAll,前...
阅读全文
posted @
2014-07-16 13:53
【艾伦】
阅读(8163)
推荐(3) 编辑
sizzle分析记录:词法分析器(tokenize)
摘要:词法分析器(tokenize)?词法分析器又称扫描器。词法分析是指将我们编写的文本代码流解析为一个一个的记号,分析得到的记号以供后续语法分析使用。sizzle引入了tokenize这个概念,意义?jQuery的选择器,实现了css1-css3的API,但是ECMAScript低版本的API中本身没有...
阅读全文
posted @
2014-07-14 18:01
【艾伦】
阅读(2979)
推荐(2) 编辑
sizzle分析记录:getAttribute和getAttributeNode
摘要:部分IE游览器下无法通过getAttribute取值? alert(form.getAttribute('name')); IE6、7中错误 alert(form.getAttributeNode('name').nodeValue);看看jQ的解决方案能力判断 support.attributes = assert(function( div ) { div.c...
阅读全文
posted @
2014-07-11 09:57
【艾伦】
阅读(2704)
推荐(0) 编辑
jQuery源码分析系列(39) : 动画队列
摘要:data函数在jQuery中只有短短的300行代码,非常不起点 ,剖析源码的时候你会发现jQuery只要在有需要保存数据的地方无时无刻不依赖这个基础设施动画会调用队列,队列会调用data数据接口还保存队列里面的的动画数据所以我们在自习回顾下关于数据缓存//These may be used thro...
阅读全文
posted @
2014-06-30 10:47
【艾伦】
阅读(5496)
推荐(7) 编辑
jQuery源码分析系列(38) : 队列操作
摘要:Queue队列,如同data数据缓存与Deferred异步模型一样,都是jQuery库的内部实现的基础设施Queue队列是animate动画依赖的基础设施,整个jQuery中队列仅供给动画使用Queue队列队列是一种特殊的线性表,只允许在表的前端(队头)进行删除操作(出队),在表的后端(队尾)进行插...
阅读全文
posted @
2014-06-25 09:49
【艾伦】
阅读(5669)
推荐(7) 编辑
jQuery源码分析系列(36) : Ajax - 类型转化器
摘要:什么是类型转化器?jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html但是浏览器的XMLHttpRequest对象对数据的响应只有 responseText与responseXML 二种所以现在我要定义dataType为jso...
阅读全文
posted @
2014-06-18 11:39
【艾伦】
阅读(4060)
推荐(6) 编辑
jQuery源码分析系列(35) : Ajax - jsonp的实现与原理
摘要:ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加然后php方就会执行backfunc(传递参数);所以流程就会分二步:1:针对jsonp的预处理,主要是转化拼接这些参数,然后处理缓存,因为jsonp的方式也是靠加载script所以要关闭浏览器缓存insp...
阅读全文
posted @
2014-06-13 15:24
【艾伦】
阅读(11026)
推荐(10) 编辑
jQuery源码分析系列(33) : AJAX中的前置过滤器和请求分发器
摘要:jQuery1.5以后,AJAX模块提供了三个新的方法用于管理、扩展AJAX请求,分别是:1.前置过滤器 jQuery. ajaxPrefilter2.请求分发器 jQuery. ajaxTransport,3.类型转换器 ajaxConvert源码结构:jQuery.extend({ /**...
阅读全文
posted @
2014-06-09 11:16
【艾伦】
阅读(5229)
推荐(12) 编辑
jQuery源码分析系列(31) : Ajax deferred实现
摘要:AJAX的底层实现都是浏览器提供的,所以任何基于api上面的框架或者库,都只是说对于功能的灵活与兼容维护性做出最优的扩展ajax请求的流程:1、通过 new XMLHttpRequest 或其它的形式(指IE)生成ajax的对象xhr。2、通过xhr.open(type, url, async, u...
阅读全文
posted @
2014-05-09 10:27
【艾伦】
阅读(5333)
推荐(15) 编辑
jQuery源码分析系列:Callback深入
摘要:关于Callbacks http://www.cnblogs.com/aaronjs/p/3342344.html$.Callbacks()的内部提供了jQuery的$.ajax() 和 $.Deferred() 基本功能组件在针对ajax处理中,用的最多的就是once memory的组合/** *...
阅读全文
posted @
2014-05-07 15:11
【艾伦】
阅读(7153)
推荐(9) 编辑
jQuery源码分析系列(30) : Ajax 整体结构
摘要:开头引用一段 想起一句话:前端研究,研究个屁~ 的确如此呀。补充下联:前端设计,设计个屁~前端目前最大的困境是,如 HTML 一样,无论你承不承认,市场上并不太需要 HTML 高手其实这里引发一个问题:前端的价值究竟是什么?未来应该如何发展?我个人觉得还是一个核心价值的问题,前端在漂亮的东西都是需要后端的数据支撑的,而且前端的绝大部分问题,其实都需要后端才能解决,就如我开发了三年的混合项目...
阅读全文
posted @
2014-04-24 10:51
【艾伦】
阅读(14809)
推荐(26) 编辑
jQuery2.0.3源码分析系列之(29) 窗口尺寸
摘要:.height().innerHeight().innerWidth().outerHeight().outerWidth().width()基础回顾一般的,在获取浏览器窗口的大小和位置时,有以下几个属性可以使用:在不同的浏览器中,以下12个属性所代表的意义也是不一样的特别需要注意的是,当使用或者不使用声明显示一个文档的时候,以上12个属性的意义也会发生变化。特在IE 9中,无论是否使用声明显示一个文档,document.documentElement和document.body中的相关属性的意义总是相同的。这点与IE 6/7/8表现不一样。正常情况:Firefox/Chrome/Safari
阅读全文
posted @
2014-02-27 09:15
【艾伦】
阅读(4298)
推荐(15) 编辑