jQuery-1.9.1源码分析系列(九) CSS操作
2015-11-17 17:23
921 查看
jquery.fn.css获取当前jQuery所匹配的元素中第一个元素的属性值【$(…).css(cssName),注意这个cssName可以是数组】或给当前jQuery所匹配的每个元素设置样式值【$(…).css(cssname,value) / $(…).css(obj)】;
可以看见函数内部直接调用了jquery.access来处理。access将当前多个元素组成的jQuery对象所匹配的元素分解成单一元素逐个调用第二个参数中的回调function( elem, name, value );如果参数name是对象的话,access内部分解name递归调用逐个处理name的每一个key/value键值对
源码
View Code
OK,这一章终于搞定了。
如果觉得本文不错,请点击右下方【推荐】!
可以看见函数内部直接调用了jquery.access来处理。access将当前多个元素组成的jQuery对象所匹配的元素分解成单一元素逐个调用第二个参数中的回调function( elem, name, value );如果参数name是对象的话,access内部分解name递归调用逐个处理name的每一个key/value键值对
源码
//获取name对应的css特征值 css: function( elem, name, extra, styles ) { var num, val, hooks, origName = jQuery.camelCase( name ); //修正名称 name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); //获取有前缀版本的hooks或没有前缀版本的hooks hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; //从hook中提取值 if ( hooks && "get" in hooks ) { val = hooks.get( elem, true, extra ); } //其他情况使用curCSS取值 if ( val === undefined ) { val = curCSS( elem, name, styles ); } //cssNormalTransform = {letterSpacing: 0,fontWeight: 400} //将"normal"转化成计算值 if ( val === "normal" && name in cssNormalTransform ) { val = cssNormalTransform[ name ]; } //当强制或提供了限定和val看上去像数字时强制转化成数字并返回 if ( extra === "" || extra ) { num = parseFloat( val ); return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; } return val; }
View Code
OK,这一章终于搞定了。
如果觉得本文不错,请点击右下方【推荐】!
相关文章推荐
- jQuery设计思想
- jQuery 动画的执行
- jQuery异步提交与JSON解析
- jQuery整理1
- JQuery AJax序列化元素
- jquery可定制的在线UEditor编辑器
- jquery实现触发、失去焦点操作并执行ajax操作
- javascript与Jquery整理
- jQuery $(document).ready()和JavaScript window.onload()事件的区别
- hammerjs jquery的选项使用方法,以给swipe设置threshold和velocity为例
- Jquery操作Cookie
- jquery.qrcode生成二维码支持中文
- spket插件下载安装 jQueryEclipse插件
- 基于Jquery代码实现支持PC端手机端幻灯片代码
- jquery ajax 参数可以序列化
- jquery ui autocomplete实例
- jquery 中获取table里tr的属性值
- Jquery easyui 实现动态树
- jquery扩展方法
- jquery的ajax同步和异步