常用JS函数封装

  1. //获取元素属性
  2. function getStyle(obj,attr)
  3.         {
  4.                 return obj.currentStyle ?  obj.currentStyle[attr] : getComputedStyle(obj,0)[attr];
  5.         }
  6. //运动函数
  7. function doMove(obj,attr,speed,target,endFn)
  8.         {
  9.                 
  10.                 clearInterval(obj.timer);
  11.                 speed = parseInt(getStyle(obj,attr))<target ? speed:-speed;
  12.                 //alert(speed);
  13.                 obj.timer=setInterval(function(){
  14.                         var curPosition=parseInt(getStyle(obj,attr))+speed;
  15.                         if(curPosition>target && speed>0 || curPosition<target && speed<0)
  16.                                 curPosition=target;
  17.                         obj.style[attr]=curPosition + 'px';
  18.                         if(curPosition==target)
  19.                         {
  20.                                 clearInterval(obj.timer);
  21.                                 endFn && endFn();
  22.                         }        
  23.                 },50);        
  24.         }
  25. //getElementByClassName函数
  26. function getElementByClassName(parent,tagName,className)
  27. {
  28.         var aEls=parent.getElementsByTagName(tagName);
  29.         var arr=[];
  30.         for(var i=0;i<aEls.length;i++)
  31.         {
  32.                 var arrClassName=aEls[i].className.split(' ');
  33.                 var _index=arrIndexOf(arrClassName,className);
  34.                 if(_index != -1){
  35.                         arr.push(aEls[i]);
  36.                 }
  37.         }
  38.         return arr;
  39. }
  40. //removeClass函数
  41. function removeClass(obj,className)
  42. {
  43.         //如果原来有class
  44.         if(obj.className!=''){
  45.                 var arrClassName=obj.className.split(' ');
  46.                 var _index=arrIndexOf(arrClassName,className);
  47.                 if(_index != -1){
  48.                         arrClassName.splice(_index,1);  //删除需要删除的calss
  49.                         obj.className=arrClassName.join(' '); //然后将arrClassName数组拼接起来
  50.                 }
  51.         }
  52. }
  53. //绑定事件函数
  54. function bind(obj,evname,fn){
  55.     if(obj.addEventListener){
  56.     obj.addEventListener(evname,fn,false);
  57. }else{
  58.     obj.attachEvent('on'+evname,function(){
  59.     fn.call(obj); 
  60.    //fn()==fn.call()  call(第一个参数,第二个参数) call函数可以改变函数this的指向,call函数传入的第一个参数就是改变this指向的值,call的第二第三个参数就是原函数的参数
  61. });
  62. }
  63. }
  64. //鼠标在可视区域内的拖拽
  65. function clientDrag(obj){
  66.         obj.onmousedown=function(ev){
  67.         ev=ev || event;
  68.         var ms_b=ev.clientX-obj.offsetLeft;
  69.         var ms_t=ev.clientY-obj.offsetTop;
  70.         document.onmousemove=function(ev){
  71.                 ev=ev || event;
  72.                 var currX=ev.clientX-ms_b;
  73.                 var currY=ev.clientY-ms_t;
  74.                 var Width=document.body.clientWidth || document.documentElement.cilentWidth;
  75.                 var Height=document.body.clientHeight || document.documentElement.cilentHeight;
  76.                 if(currX<0) {currX=0;}
  77.                 else if(currX>Width-obj.clientWidth){
  78.                         currX=Width-obj.clientWidth;
  79.                 }
  80.                 if(currY<0) {currY=0;}
  81.                 else if(currY>Height-obj.clientHeight){
  82.                         currY=Height-obj.clientHeight;
  83.                 }
  84.                 obj.style.left=currX +'px';
  85.                 obj.style.top=currY +'px';
  86.                 return false;
  87.         }
  88.         document.onmouseup=function(){
  89.                 document.onmousemove=document.onmouseup=null;
  90.         }
  91. }
  92. }

你可能感兴趣的:(js)