JS drag 드래그 코드 를 같이 쓰 겠 습 니 다.
Drag = {
obj: null,
init: function (options) {
options.handler.onmousedown = this.start;
options.handler.root = options.root || options.handler;
var root = options.handler.root;
root.onDragStart = options.dragStart || new Function();
root.onDrag = options.onDrag || new Function();
root.onDragEnd = options.onDragEnd || new Function();
},
start: function (e) {// this handler
var obj = Drag.obj = this;
obj.style.cursor = 'move';
e = e || Drag.fixEvent(window.event);
ex = e.pageX;
ey = e.pageY;
obj.lastMouseX = ex;
obj.lastMouseY = ey;
var x = obj.root.offsetLeft;
var y = obj.root..offsetTop;
obj.root.style.left = x + "px";
obj.root.style.top = y + "px";
document.onmouseup = Drag.end;
document.onmousemove = Drag.drag;
obj.root.onDragStart(x, y);
},
drag: function (e) {
e = e || Drag.fixEvent(window.event);
ex = e.pageX;
ey = e.pageY;
var root = Drag.obj.root;
var x = root.style.left ? parseInt(root.style.left) : 0;
var y = root.style.top ? parseInt(root.style.top) : 0;
var nx = ex - Drag.obj.lastMouseX + x;
var ny = ey - Drag.obj.lastMouseY + y;
root.style.left = nx + "px";
root.style.top = ny + "px";
Drag.obj.root.onDrag(nx, ny);
Drag.obj.lastMouseX = ex;
Drag.obj.lastMouseY = ey;
},
end: function (e) {
var x = Drag.obj.root.style.left ? parseInt(Drag.obj.root.style.left) : 0;
var y = Drag.obj.root.style.top ? parseInt(Drag.obj.root.style.top) : 0;
Drag.obj.root.onDragEnd(x, y);
document.onmousemove = null;
document.onmouseup = null;
Drag.obj = null;
},
fixEvent: function (e) {
e.pageX = e.clientX + document.documentElement.scrollLeft;
e.pageY = e.clientY + document.documentElement.scrollTop;
return e;
}
}
위 init 는 주로 초기 화 작업 을 처리 합 니 다.예 를 들 어 onDragstart,onDrag,onDragEnd 세 가지 사건 을 기록 하고 handler 는 드래그 사건 을 처리 하 는 요소 이 며 root 는 드래그 된 요소 입 니 다.handler 에서 클릭 한 후 Drag.start 방법 을 터치 하면 Drag.start 는 마우스 가 전체 페이지 에 있 는 위 치 를 기록 합 니 다.document 에 onmouseup,onmousemove 이 벤트 를 등록 하고 onDragstart 이 벤트 를 촉발 합 니 다.Drag.drag 방법 도 간단 합 니 다.옮 겨 진 요소 의 위 치 를 업데이트 하 는 동시에 마우스 가 전체 페이지 에 있 는 위 치 를 기록 하 는 것 이 주요 역할 입 니 다.Drag.end 방법 은 더 간단 합 니 다.마무리 작업 을 하 는 것 입 니 다.마지막 으로 여러분 께 사용 할 코드 를 첨부 해 드 리 겠 습 니 다.즐 거 운 학습 되 세 요!
Drag.init({
handler: document.getElementById("handler"),
root:document.getElementById("root");
});
<div id="root">
<h2 id="handler"></h2>
</div>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.