zepto 源码 $.contains 学习笔记】的更多相关文章

$.contains(parent,node)  返回值为一个布尔值 ==> boolean parent,node我们需要检查的节点检查父节点是否包含给定的dom节点,如果两者是相同的节点,返回 false.zepto代码实现方式: $.contains = document.documentElement.contains ? function(parent, node) { return parent !== node && parent.contains(node) } :…
Johnson 全源最短路径算法学习笔记 如果你希望得到带互动的极简文字体验,请点这里 我们来学习johnson Johnson 算法是一种在边加权有向图中找到所有顶点对之间最短路径的方法.它允许一些边权重为负数,但可能不存在负权重循环.它的工作原理是使用Bellman-Ford 算法来计算输入图的转换,该转换去除了所有负权重,从而允许在转换后的图上使用Dijkstra 算法.Johnson 算法是一种在边加权有向图中找到所有顶点对之间最短路径的方法.它允许一些边权重为负数,但可能不存在负权重循…
先展示init函数,由于笔记本屏幕太小,删掉了部分源码注释,才能在一屏内截图. 当我们调用$()的时候,便会直接调用zepto.init()生成zepto对象,跟jquery生成jquery对象类似.可以在插件中进行覆盖. 定义变量dom 分为5种情况,逐个进行判断. 1.未传入选择器,即没有传入任何参数的情况,直接返回一个空的zepto对象. 2.如果传入字符串类型的选择器,即传入的是css选择器 清除selector参数的前后空格,selector = selector.trim() 然后区…
在浏览器上(Safari.Chrome和Firefox)上开发页面应用或者构建基于html的web-view本地应用,你如PhoneGap,使用Zepto是一个不错的选择. Jquery和Zepto的区别 由于我原先并没有用过Zepto,所以首先试了一下Jquery和Zepto的区别 1:$(function(){});       J,Z通用,页面加载完毕执行回调函数(Zepto中的$—>Zepto),当然都是可以省略的 2:  Zepto的源码是不加分号的,而Jquery是加分号的! 源码看…
// Zepto.js // (c) 2010-2016 Thomas Fuchs // Zepto.js may be freely distributed under the MIT license. var Zepto = (function() { var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyA…
zepto内部选择器qsa方法的实现. 简述实现原理: 通过判断传入的参数类型: 如果是'#id',则使用getElementById(id)来获取元素,并且将结果包装成数组形式: 如果是'.class',则使用getElementsByClassName(class)获取元素: 如果是'tagName',使用getElementsByTagName(tagName)获取元素: 如果参数是复杂的css选择器,则使用element.querySelectorAll(css选择器)来获取元素. 方法…
对象继承函数: $.extend(){},默认传递一个参数,需要继承的对象目标.函数展示: 最终实现的过程,需要调用工具函数extend,首先分析extend函数. 默认传递三个参数,继承的目标对象-target,继承的源对象-source,是否为深拷贝-deep 遍历源对象,分两种情况: 1.浅拷贝:只要source[key]有值,就将其值赋值给target对应的key,即target[key]; 2.深拷贝:就是如果源对象的属性值,也是对象或者数组,则进行同样的拷贝操作.以对象为例:{'na…
文档片段fragment函数默认传递三个参数: html文档片段字符串 name标签 properties额外添加的属性 函数内部实现过程: var dom, nodes, container; 中间是将字符串html转换成符合需求的dom,并返回. if (singleTagRE.test(html)) dom = document.createElement(RegExp.$1); 判断html如果是单标签,直接使用标签名称创建dom元素. 其中的在定义变量时已经预先定义了.并且进行了匹配的…
zepto的第一个函数,zepto.matches: 作用:用来匹配dom元素是否匹配某css selector. 它为后面的一些高级方法的实现提供了基础支持,比如事件代理,parent, closest等. 进行初始化的判断,如果不存在DOM元素或者css selector,或者非元素节点的话,直接返回,不再进行后续操作. 获取统一接口,监听所有浏览器(IE6-8不支持),需要注意到的是顺序问题,element.matches就是封装之后的函数,可以忽略, 然后优先使用element.webk…
template <class InputIterator, class ForwardIterator>inline ForwardIterator uninitialized_copy(InputIterator first, InputIterator last,ForwardIterator result) 函数使用示例 #include <algorithm> #include <iostream> #include <memory> #inclu…