js元素样式属性值
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:editor 阅读 515
1.获取指定元素的样式属性值,兼容IE与其他标准DOM1//parameter:el具体元素、name样式属性名("width"、"background")2//re

1.获取指定元素的样式属性值,兼容IE与其他标准DOM

   1 //parameter:el具体元素、name样式属性名("width"、"background")   2 //return:el元素的样式属性name的值   3 function getStyle(el,name){   4     if(el.style[name]){   5         return el.style[name];   6     }   7     else if(e.currentStyle){   8         return el.currentStyle[name];   9     }  10     else if(document.defaultView && document.defaultView.getComputedStyle){  11         name = name.replace(/[A-Z]/g,"-$1").toLowerCase();  12         var attrObj = document.defaultView.getComputedStyle(el,null);  13         if(attrObj)  14             return attrObj.getPropertyValue(name);  15     }  16     else   17         return null;  18 }

2.出现width/height的值为百分比或者auto时必备的函数,可以灵活的计算出我们想要的值。以宽带width为例:

   1 //parameter:el要计算的元素对象、wValue通过上面getStyle()获得的属性值、per元素百分比属性值转为小数后的值(50%==0.5,初始调用时,省略该参数)   2 //return:el元素的具体属性值   3 function getStyleX(el,wValue,per){   4         var p = arguments[2];   5         if(!p) p = 1;   6         if(/px/.test(wValue) && parseInt(wValue))   7             return parseInt(parseInt(wValue)*p);   8         else if(/\%/.test(wValue) && parseInt(wValue)){   9             var b = parseInt(wValue)/100;  10             if((p != 1) && p)  11                 b *= p;  12             el = el.parentNode;  13             if(el.tagName == "BODY")  14                 throw new Error("Calculation failure!");  15             wValue = getStyle(el,"width");  16             return arguments.callee(el,wValue,b);  17         }  18         else if(/auto/.test(wValue)){  19             var b = 1;  20             if((p != 1) && p)  21                 b *= p;  22             el = el.parentNode;  23             if(el.tagName == "BODY")  24                 throw new Error("Calculation failure!");  25             wValue = getStyle(el,"width");  26             return arguments.callee(el,wValue,b);  27         }  28         else  29             throw new Error("Error parameters!")  30     }
联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2