首页 > 网站 > WEB开发 > 正文

Javascript:常用函数封装

2024-04-27 14:20:08
字体:
来源:转载
供稿:网友

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;        }    }};

半角与全角

代码

 1 /** 2  * 转全角字符 3  */ 4 function toDBC(str){ 5     var result = ""; 6     var len = str.length; 7     for(var i=0;i<len;i++) 8     { 9         var cCode = str.charCodeAt(i);10         //全角与半角相差(除空格外):65248(十进制)11         cCode = (cCode>=0x0021 && cCode<=0x007E)?(cCode + 65248) : cCode;12         //处理空格13         cCode = (cCode==0x0020)?0x03000:cCode;14         result += String.fromCharCode(cCode);15     }16     return result;17 }18 19 /**20  * 转半角字符21  */22 function toSBC(str){23     var result = "";24     var len = str.length;25     for(var i=0;i<len;i++)26     {27         var cCode = str.charCodeAt(i);28         //全角与半角相差(除空格外):65248(十进制)29         cCode = (cCode>=0xFF01 && cCode<=0xFF5E)?(cCode - 65248) : cCode;30         //处理空格31         cCode = (cCode==0x03000)?0x0020:cCode;32         result += String.fromCharCode(cCode);33     }34     return result;35 }
全角与半角字符的转换

知识点

通过半角字符与全角字符的比较(ASCII字符),我们可以发现,拥有全角与半角之分的ASCII字符范围:0x20~0x7E。

比如:

符号半角全角相差
#0x00230xFF030xFEE0
?0x003F0xFF1F0xFEE0
空格0x00200x030000x2FE0

除了空格外,其他的字符中,全角与半角均相差:0xFFE0

因此,在全角与半角的字符转换中,需要对空格特殊处理。

例如:

全角 =半角 + 0xFEE0

半角 =全角 - 0xFFE0

相关文章:

请问半角全角有什么区别

维基百科:全角和半角

Java 半角全角互相转换

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

推荐一个不错的Javascript函数库网站:http://www.jslab.org.cn/


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表