자주 사용하는 기능이므로 여기서는 장황하게 설명하지 않겠습니다. 직접 보시면 이해하실 겁니다.
//쿠키
함수 setCookie(이름, 값, iDay)
{
if(iDay!==false)
{
var oDate=new Date();
oDate.setDate(oDate.getDate() iDay);
document.cookie=이름 '=' 값 ';expires=' oDate ';경로=/';
}
그 외
{
document.cookie=이름 '=' 값;
}
}
함수 getCookie(이름)
{
var arr=document.cookie.split('; ');
var i=0;
for(i=0;i
{
var arr2=arr[i].split('=');
if(arr2[0]==이름)
{
return arr2[1];
}
}
반환 '';
}
기능 제거쿠키(이름)
{
setCookie(이름, 'a', -1);
}
//사건
함수 myAddEvent(obj, ev, fn){
obj.attachEvent?obj.attachEvent('on' ev, fn):obj.addEventListener(ev, fn, false);
}
함수 myDelEvent(obj, ev, fn){
obj.detachEvent?obj.detachEvent('on' ev, fn):obj.removeEventListener(ev, fn, false);
}
함수 getByClass(oParent, sClass)
{
var aEle=oParent.getElementsByTagName('*');
var re=new RegExp('\b' sClass '\b', 'i');
var aResult=[];
for(var i=0;i
{
if(re.test(aEle[i].className))
{
aResult.push(aEle[i]);
}
}
결과를 반환합니다.
}
함수 바인드이벤트(obj, ev, fn)
{
obj.addEventListener?obj.addEventListener(ev, fn, false):obj.attachEvent('on' ev, fn);
}
함수 unbindEvent(obj, ev, fn)
{
obj.removeEventListener?obj.removeEventListener(ev, fn, false):obj.detachEvent('on' ev, fn);
}
//생성随机数
함수 rnd(n, m)
{
return Math.random()*(m-n) n;
}
함수 time2date(t)
{
함수 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());
}
함수시간2일(t)
{
함수 d(n){return n<10?'0' n:'' n;}
var oDate=new Date(t*1000);
return oDate.getFullYear() '-' d(oDate.getMonth() 1) '-' d(oDate.getDate());
}
//拖拽
함수 드래그(objEv, objMove, fnMoveCallBack)
{
var disX=0,disY=0;
objEv.onmousedown=함수(ev)
{
var oEvent=ev||이벤트;
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();
}
그 외
{
document.onmousemove=fnMove;
document.onmouseup=fnUp;
false를 반환합니다.
}
};
함수 fnMove(ev)
{
var oEvent=ev||이벤트;
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);
}
함수 fnUp()
{
this.onmousemove=null;
this.onmouseup=null;
if(this.releaseCapture)this.releaseCapture();
}
}
함수 mouseScroll(obj, fnCallBack)
{
binEvent(obj, 'mousewheel', fnScroll);
binEvent(obj, 'DOMMouseScroll', fnScroll);
함수 fnScroll(ev)
{
var oEvent=ev||이벤트;
var bDown;
if(oEvent.wheelDelta)
{
bDown=oEvent.wheelDelta<0;
}
그 외
{
bDown=oEvent.detail>0;
}
fnCallBack(bDown);
if(oEvent.preventDefault)oEvent.preventDefault();
false를 반환합니다.
}
}
//摆动运动
zns.site.fx.swing=기능(obj, cur, target, fnDo, fnEnd, acc)
{
if(zns.site.fx.browser_test.IE6)
{
fnDo&&fnDo.call(obj, target);
fnEnd&&fnEnd.call(obj, 대상);
반품;
}
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);
함수 fnMove(){
if(x<50)
{
obj.__swing_v =acc;
}
그 외
{
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)
{
지금[i]=(대상[i]-cur[i])*x/100 현재[i];
}
if(fnDo)fnDo.call(obj, 지금);
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=함수(obj, cur, target, fnDo, fnEnd, fs, ms)
{
if(zns.site.fx.browser_test.IE6)
{
fnDo&&fnDo.call(obj, target);
fnEnd&&fnEnd.call(obj, 대상);
반품;
}
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);
함수 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)
{
지금[i]=(대상[i]-cur[i])*x/100 현재[i];
}
if(fnDo)fnDo.call(obj, 지금);
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;
}
}
};