zepto源码--classRE、maybeAddPx、children、defaultDisplay--学习笔记

本文介绍了四种CSS相关的优化方法:classRE用于缓存className操作;maybeAddPx为未定义单位的CSS数值添加默认单位px;defaultDisplay获取并缓存元素默认的display属性值;children则提供了一种高效获取直接子元素的方法。

1、classRE

对获取className的操作,进行缓存。如果缓存中有,直接读取缓存中的值,如果没有,则先进行缓存的存储,再读取值。

利用前面变量定义的classCache={}进行缓存的操作,如果classCache中存在对应的name,则读取classCache[name], 否则先将需要操作的name去除左右两边的空格之后,再赋值给对应的classCache[name],进行缓存。

 

2、maybeAddPx

对于需要添加单位的值,则添加单位。

变量定义的cssNumber列举了css属性值为纯数字,不需要单位的情况。maybeAddPx则是对除了cssNumber所列举的属性之外的属性值为数字的属性默认添加单位px。

 

3、defaultDisplay

利用变量elementDisplay获取对应元素默认的display属性值。

首先判断缓存变量elementDisplay中,如果不存在该元素的默认display属性,则进行缓存;如果存在,则直接返回默认display值。

不存在默认值的时候:

a:创建对应节点元素                     

b:添加到页面中                       

c:再获取该元素的display                  

d:从页面中删除创建出来的节点元素            

e:如果默认值display的默认值为none,则纠正为block     

f:将display值赋值给缓存变量elementDisplay[nodeName] 

 

4、children

获取元素elment的直接子集元素节点。

先判断是否支持原生的children属性,如果支持,则直接使用element.children获取该元素的子元素,否则对该元素的所有子元素进行遍历,取nodeType为1的节点。

 

转载于:https://www.cnblogs.com/zhuhuoxingguang/p/6014773.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值