javascript十个最常用的自定义函数
2009-09-08 00:00:00 来源:WEB开发网(2)getStyle()与setStyle()
所有UI控件都应该存在的函数,动态设置样式与获取样式。这个可以写得很短,也可以写得很长,但要精确取得样式,一个字:难!但我发现许多问题都是发端于IE,微软的开发人员好像从来不打算给出getComputedStyle这样的函数,与之相近的currentStyle会返回auto,inhert, ' '等让你哭笑不得的值,这还没有算上IE怪癖模式带来的难度呢!各类库的实现是非常长与难分离出来的,下面是我实现的版本:
01.function setStyle(el,prop,value){
02. if(prop == "opacity" && !+"v1"){
03. //IE7 bug:filter 滤镜要求 hasLayout=true 方可执行(否则没有效果)
04. if (!el.currentStyle || !el.currentStyle.hasLayout) el.style.zoom = 1;
05. prop = "filter";
06. if(!!window.XDomainRequest){
07. value ="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity="+value*100+")";
08. }else{
09. value ="alpha(opacity="+value*100+")"
10. }
11. }
12. el.style.cssText += ';' + (prop+":"+value);
13. }
14. function getStyle(el, style){
15. if(!+"v1"){
16. style = style.replace(/-(w)/g, function(all, letter){
17. return letter.toUpperCase();
18. });
19. return el.currentStyle[style];
20. }else{
21. return document.defaultView.getComputedStyle(el, null).getPropertyValue(style)
22. }
23. }
有关setStyle还可以看我另一篇博文,毕竟现在设置的样式都是内联样式,与html混杂在一起。
(1)$()
实至名归,最值钱的函数,可以节省多少流量啊。最先由Prototype.js实现的,那是洪荒时代遗留下来的珍兽,现在有许多变种。
01.function $() {
02. var elements = [];
03. for (var i = 0; i < arguments.length; i++) {
04. var element = arguments[i];
05. if (typeof element == 'string')
06. element = document.getElementById(element);
07. if (arguments.length == 1)
08. return element;
09. elements.push(element);
10. }
11. return elements;
12.}
Tags:javascript 十个 常用
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接