首页 > 代码库 > Javascript:常用函数封装

Javascript:常用函数封装

//cookiefunction setCookie(name, value, iDay){    if(iDay!==false)    {        var oDate=new Date();        oDate.setDate(oDate.getDate()+iDay);        document.cookie=name+‘=‘+value+‘;expires=‘+oDate+‘;path=/‘;    }    else    {        document.cookie=name+‘=‘+value;    }}function getCookie(name){    var arr=document.cookie.split(‘; ‘);    var i=0;    for(i=0;i<arr.length;i++)    {        var arr2=arr[i].split(‘=‘);        if(arr2[0]==name)        {            return arr2[1];        }    }    return ‘‘;}function removeCookie(name){    setCookie(name, ‘a‘, -1);}//事件function myAddEvent(obj, ev, fn){    obj.attachEvent?obj.attachEvent(‘on‘+ev, fn):obj.addEventListener(ev, fn, false);}function myDelEvent(obj, ev, fn){    obj.detachEvent?obj.detachEvent(‘on‘+ev, fn):obj.removeEventListener(ev, fn, false);}function getByClass(oParent, sClass){    var aEle=oParent.getElementsByTagName(‘*‘);    var re=new RegExp(‘\\b‘+sClass+‘\\b‘, ‘i‘);    var aResult=[];    for(var i=0;i<aEle.length;i++)    {        if(re.test(aEle[i].className))        {            aResult.push(aEle[i]);        }    }    return aResult;}function bindEvent(obj, ev, fn){    obj.addEventListener?obj.addEventListener(ev, fn, false):obj.attachEvent(‘on‘+ev, fn);}function unbindEvent(obj, ev, fn){    obj.removeEventListener?obj.removeEventListener(ev, fn, false):obj.detachEvent(‘on‘+ev, fn);}//生成随机数function rnd(n, m){    return Math.random()*(m-n)+n;}function time2date(t){    function d(n){return n<10?‘0‘+n:‘‘+n;}    var oDate=new Date(t*1000);    return oDate.getFullYear()+‘-‘+d(oDate.getMonth()+1)+‘-‘+d(oDate.getDate())+‘ ‘+d(oDate.getHours())+‘:‘+d(oDate.getMinutes())+‘:‘+d(oDate.getSeconds());}function time2day(t){    function d(n){return n<10?‘0‘+n:‘‘+n;}    var oDate=new Date(t*1000);    return oDate.getFullYear()+‘-‘+d(oDate.getMonth()+1)+‘-‘+d(oDate.getDate());}//拖拽function drag(objEv, objMove, fnMoveCallBack){    var disX=0,disY=0;    objEv.onmousedown=function (ev)    {        var oEvent=ev||event;        disX=(document.documentElement.scrollLeft||document.body.scrollLeft)+oEvent.clientX-objMove.offsetLeft;        disY=(document.documentElement.scrollTop||document.body.scrollTop)+oEvent.clientY-objMove.offsetTop;        if(objEv.setCapture)        {            objEv.onmousemove=fnMove;            objEv.onmouseup=fnUp;            objEv.setCapture();        }        else        {            document.onmousemove=fnMove;            document.onmouseup=fnUp;            return false;        }    };    function fnMove(ev)    {        var oEvent=ev||event;        var l=(document.documentElement.scrollLeft||document.body.scrollLeft)+oEvent.clientX-disX;        var t=(document.documentElement.scrollTop||document.body.scrollTop)+oEvent.clientY-disY;        fnMoveCallBack(l,t);    }    function fnUp()    {        this.onmousemove=null;        this.onmouseup=null;        if(this.releaseCapture)this.releaseCapture();    }}function mouseScroll(obj, fnCallBack){    bindEvent(obj, ‘mousewheel‘, fnScroll);    bindEvent(obj, ‘DOMMouseScroll‘, fnScroll);    function fnScroll(ev)    {        var oEvent=ev||event;        var bDown;        if(oEvent.wheelDelta)        {            bDown=oEvent.wheelDelta<0;        }        else        {            bDown=oEvent.detail>0;        }        fnCallBack(bDown);        if(oEvent.preventDefault)oEvent.preventDefault();        return false;    }}//摆动运动zns.site.fx.swing=function (obj, cur, target, fnDo, fnEnd, acc){    if(zns.site.fx.browser_test.IE6)    {        fnDo&&fnDo.call(obj, target);        fnEnd&&fnEnd.call(obj, target);        return;    }    if(!acc)acc=0.1;    var now={};    var x=0;    //0-100    if(!obj.__swing_v)obj.__swing_v=0;    if(!obj.__last_timer)obj.__last_timer=0;    var t=new Date().getTime();    if(t-obj.__last_timer>20)    {        fnMove();        obj.__last_timer=t;    }    clearInterval(obj.timer);    obj.timer=setInterval(fnMove, 20);    function fnMove(){        if(x<50)        {            obj.__swing_v+=acc;        }        else        {            obj.__swing_v-=acc;        }        //if(Math.abs(obj.__flex_v)>MAX_SPEED)obj.__flex_v=obj.__flex_v>0?MAX_SPEED:-MAX_SPEED;        x+=obj.__swing_v;        //alert(x+‘,‘+obj.__swing_v);        for(var i in cur)        {            now[i]=(target[i]-cur[i])*x/100+cur[i];        }        if(fnDo)fnDo.call(obj, now);        if(/*Math.abs(obj.__swing_v)<1 || */Math.abs(100-x)<1)        {            clearInterval(obj.timer);            if(fnEnd)fnEnd.call(obj, target);            obj.__swing_v=0;        }    }};//弹性运动zns.site.fx.flex=function (obj, cur, target, fnDo, fnEnd, fs, ms){    if(zns.site.fx.browser_test.IE6)    {        fnDo&&fnDo.call(obj, target);        fnEnd&&fnEnd.call(obj, target);        return;    }    var MAX_SPEED=16;    if(!fs)fs=6;    if(!ms)ms=0.75;    var now={};    var x=0;    //0-100    if(!obj.__flex_v)obj.__flex_v=0;    if(!obj.__last_timer)obj.__last_timer=0;    var t=new Date().getTime();    if(t-obj.__last_timer>20)    {        fnMove();        obj.__last_timer=t;    }    clearInterval(obj.timer);    obj.timer=setInterval(fnMove, 20);    function fnMove(){        obj.__flex_v+=(100-x)/fs;        obj.__flex_v*=ms;        if(Math.abs(obj.__flex_v)>MAX_SPEED)obj.__flex_v=obj.__flex_v>0?MAX_SPEED:-MAX_SPEED;        x+=obj.__flex_v;        for(var i in cur)        {            now[i]=(target[i]-cur[i])*x/100+cur[i];        }        if(fnDo)fnDo.call(obj, now);        if(Math.abs(obj.__flex_v)<1 && Math.abs(100-x)<1)        {            clearInterval(obj.timer);            if(fnEnd)fnEnd.call(obj, target);            obj.__flex_v=0;        }    }};

代码段摘抄自:http://www.zhinengshe.com/js/main.js