| /** | 
|  * Created by maggie on 16/9/23. | 
|  */ | 
|   | 
| //访问js下浏览器窗口的盒子模型属性 | 
|   | 
| //这个方法有两种用法 | 
| //1.只传一个参数attr 则就是访问这个参数对应的属性值 | 
| //2.传2个参数,就是要修改attr属性值(不管你想修改哪个属性, | 
| // 其实只能修改scrollTop和scrollLeft的值) | 
|   | 
| function win(attr,value) { | 
|     if(typeof value==="undefined") | 
|     { | 
|         //只有一个attr值,没有Value值意味着是要获得属性的值 | 
|   | 
|        var v= document.documentElement[attr]|| document.body[attr]; | 
|   | 
|        return v; | 
|     } | 
|     //设置 | 
|     document.documentElement[attr]=value; | 
|     document.body[attr]=value; | 
|   | 
| } | 
|   | 
| //获得页面中任何一个元素的顶部边框距离body的顶部边框的距离 | 
| function offset(curElement) { | 
|     var  totalLeft=0;//最终保存这个元素距离body边界的长度 | 
|     var  totalTop=0; | 
|     var  parent=curElement.offsetParent; | 
|   | 
|     totalLeft+=curElement.offsetLeft; | 
|     totalTop+=curElement.offsetTop; | 
|     while(parent) | 
|     { | 
|          //首先累加父级参照物的边框 | 
|         totalLeft+=parent.clientLeft; | 
|         totalTop+=parent.clientTop; | 
|   | 
|         totalLeft+=parent.offsetLeft; | 
|         totalTop+=parent.offsetTop; | 
|         parent=parent.offsetParent; | 
|     } | 
|     return {left:totalLeft,top:totalTop}; | 
| } | 
|   | 
| //获取某个元素的任意一个样式的值 | 
| function  getCss(curEle,attr) { | 
|     var val=null,reg=null; | 
|     if(window.getComputedStyle) | 
| //    if("getComputedStyle" in window) | 
| //    if(typeof window.getComputedStyle ==="function") | 
| //    if(navigator.userAgent.indexOf("MS IE")===-1) | 
|     { | 
|         val=window.getComputedStyle(curEle,null)[attr]; | 
|     }else | 
|     { | 
|         if(attr==="opacity") | 
|         { | 
|             val=curEle.currentStyle["filter"]; | 
|            //progid:DXImageTransform.Microsoft.Alpha(Opacity=100)" | 
|             reg=/Alpha\(Opacity=(\d+(\.\d+)?)\)$/i; | 
|             val=reg.test(val)?reg.exec(val)[1]/100:1; | 
|             return val; | 
|         }else | 
|         { | 
|             val= curEle.currentStyle[attr]; | 
|         } | 
|     } | 
|     //使用正则表达式测试属性值是不是数字+单位的形式 | 
|      reg=/^(-?\d+(\.\d+)?)(px|pt|em|rem)?$/i; | 
|      val=reg.test(val)?parseFloat(val):val; | 
|     return val; | 
| } | 
|   | 
| function setCss(curEle,attr,value) { | 
|     if(attr==="float") | 
|     { | 
|         curEle.style.cssFloat=value; | 
|         curEle.style.styleFloat=value; | 
|         return; | 
|     } | 
|     if(attr==="opacity") | 
|     { | 
|         curEle["style"]["opacity"]=value; | 
|         curEle["style"]["filter"]="Alpha(opacity="+value*100+")"; | 
|         return; | 
|     } | 
|     //自动给数值的属性添加单位 | 
|     // width height top bottom left right margin padding | 
|     //marginTop marginLeft  marginRight marginBottom | 
|     //paddingTop ...... | 
|     var reg=/^(width|height|top|bottom|left|right|((margin|padding)(Top|Left|Right|Bottom)?))$/; | 
|     if(reg.test(attr)) | 
|     { | 
|         if(!isNaN(value)) | 
|         { | 
|             value+="px"; | 
|         } | 
|     } | 
|     curEle["style"][attr]=value; | 
|   | 
| } | 
|   | 
| //一次设置多个属性的方法 | 
|    //  setMultCss(box,  {width:400px,height:300px,backgroud:#c1c1c1}) | 
| function   setMultCss(curEle, attrObj) { | 
|   | 
|     // attrObj =  attrObj|| 0; | 
|     // if(attrObj.toString()!=="[object Object]") | 
|     // { | 
|     //     return; | 
|     // } | 
|   | 
|     for(var key in attrObj) | 
|     { | 
|           if(attrObj.hasOwnProperty(key)) | 
|           { | 
|               setCss(curEle,key,attrObj[key]); | 
|           } | 
|     } | 
|   | 
| } | 
|   | 
| //2个参数时,  curEle  attr 获取attr属性的值 | 
| // | 
| //3个参数时   curEle attr  value 设置一个attr属性的值 | 
| //           curEle  obj 设置多个属性的值 | 
|   | 
| function css(curEle) | 
| { | 
|     var argTwo =   arguments[1]; | 
|     if(typeof argTwo ==="string") | 
|     { | 
|          //判断有没有第3个参数 | 
|         var argThree=arguments[2]; | 
|         if(typeof argThree==="undefined") | 
|         { | 
|             //是获取css属性 | 
|             return getCss(curEle,argTwo); | 
|         } | 
|         //有第3个参数 那么就是调用setCss | 
|         setCss(curEle,argTwo,argThree); | 
|         return; | 
|     } | 
|     //是2个参数 并且第2个参数是obj类型  所以应该是设置多个css属性 | 
|     argTwo =  argTwo|| 0; | 
|     if(argTwo.toString()!=="[object Object]") | 
|     { | 
|         return; | 
|     } | 
|     setMultCss(curEle,argTwo); | 
| } |