WEB开发网
开发学院网页设计JavaScript javascript十个最常用的自定义函数 阅读

javascript十个最常用的自定义函数

 2009-09-08 00:00:00 来源:WEB开发网   
核心提示: (2)getStyle()与setStyle()所有UI控件都应该存在的函数,动态设置样式与获取样式,javascript十个最常用的自定义函数(6),这个可以写得很短,也可以写得很长,最先由Prototype.js实现的,那是洪荒时代遗留下来的珍兽,但要精确取得样式,一个字:难!但我发现许多问

(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.}

上一页  1 2 3 4 5 6 

Tags:javascript 十个 常用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接