javascript 공용 드래그 코드

4677 단어 자바 script끌다
D 류 !!window.__defineGetter__ && !/MSIE/.test(navigator.userAgent) && function () { !window.opera && window.__defineGetter__('이벤트',function(){/호 환 이벤트 대상 var o=arguments.callee;do { if (o.arguments[0] instanceof Event) return o.arguments[0]; } while (o = o.caller); return null; }); window.attachEvent=Document.prototype.attachEvent=Element.prototype.attachEvent=function(type,listener,capture){/호 환 attachEvent 방법 return this.addEventListener(new String(type).substr(2),listener,capture|false);};window.detachEvent=Document.prototype.detachEvent=Element.prototype.detachEvent=function(type,listener,capture){/호 환 detachEvent 방법 return this.removeEventListener(new String(type).substr(2),listener,capture|false);}();var D={//드래그 보조 클래스 lock:false,dom:function(){//document 관련 속성 return{left:document.documentElement.scrollLeft,top:document.documentElement.scrollTop,width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,body:document.documentElement},mos:function(e){//마우스 절대 위치 var dom=this.dom()가 져 오기;return{'x':dom.left+e.clientX,'y':dom.top+e.clientY}},pos:function(o){/요 소 를 가 져 오 는 절대 위치 var x=0,y=0;do { x += o.offsetLeft, y += o.offsetTop; } while (o = o.offsetParent); return { 'x' : x, 'y' : y }; } , start:function(element,startEventHandler,moveEventHandler,stopEventHandler){//move start if(this.lock)return;else this.lock = true; //먼저 자 물 쇠 를 잠 그 는 것 이 안전 하 다.D var pos=this.pos(element)//원소 위치,mos=this.mos(window.event)//마우스 위치,eventHandlers={MF:null,EF:null}//이벤트 기록,property={x:mos.x-pos.x,y:mos.y-pos.y,left:pos.x,top:pos.y}/속성,MF=this.move(moveEventHandler,property)//이동 과정 이벤트 폐쇄,EF = this.stop(element, stopEventHandler, eventHandlers); //이동 정지 이벤트 패키지 try{document.selection&& document.selection.empty && (document.selection.empty(), 1) || window.getSelection && window.getSelection().removeAllRanges(); } catch (exp) {} document.attachEvent('onmousemove', _MF); //document.attachEvent('onmouseup',EF); //마우스 로 element.setCapture 를 놓 습 니까?(element.setCapture(), element.attachEvent('onlosecapture', _EF)) : window.attachEvent('onblur', _EF); //마우스 포획 분실 시 이벤트 Handlers.MF= 방출MF, eventHandlers.EF = _EF; startEventHandler && startEventHandler(property); //그냥 넘 겨...오류--},move:function(moveEventHandler,property){//이동 중 var wc=this;return function (e) { var mos = wc.mos(e || window.event), dom = wc.dom(); window.getSelection && window.getSelection().removeAllRanges(); /MSIE/.test(navigator.userAgent) && function(){//IE 스크롤 스크린 if(mos.x>dom.left+dom.width)dom.body.scrollLeft=mos.x-dom.width;else if (mos.x < dom.left) dom.body.scrollLeft = mos.x; if (mos.y > dom.top + dom.height) dom.body.scrollTop = mos.y - dom.height; else if (mos.y < dom.top) dom.body.scrollTop = mos.y; }(); property.left = mos.x - property.x, property.top = mos.y - property.y; moveEventHandler && moveEventHandler(property); //그냥 넘 겨...오염 을 잘못 하 십시오--;};},stop:function(element,stopEventHandler,eventHandlers){//이동 종료 var wc=this;return function (e) { document.detachEvent('onmousemove', eventHandlers.MF); document.detachEvent('onmouseup', eventHandlers.EF); element.setCapture ? (element.detachEvent('onlosecapture', eventHandlers.EF), element.releaseCapture()) : window.detachEvent('onblur', eventHandlers.EF); wc.lock = false; //사건 이 모두 해결 되 었 으 니 안심 하고 stopEventHandler&& stopEventHandler(); }; } };
[Ctrl+A 선택:외부 Js 를 도입 하려 면 페이지 를 새로 고침 해 야 실행 할 수 있 습 니 다.]

좋은 웹페이지 즐겨찾기