본 글의 예시에서는 JS에서 드래그 및 확대가 가능한 레이어 드래그 효과 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다. 코드 복사 코드는 다음과 같습니다. Js实现层拖动效果,还可以拖拽放大 <스타일> *{마진:0;패딩:0;} #zhezhao{ 너비:100%; 높이:100%; 배경:#f00; 필터:알파(불투명도:0); 불투명도:0; Z-색인:9999; 위치:절대; 상단:0; 왼쪽:0; 디스플레이:없음; } #div2{ 너비:200px; 높이:200px; 위치:상대; 배경:#EEEEEE; 테두리:1px 솔리드 #f00; } #div1{ 너비:15px; 높이:15px; 배경:#99CC00; 위치:절대; 오른쪽:0px; 하단:0px; 커서:nw-크기 조정; 오버플로:숨김; 글꼴 크기:12px; 텍스트 정렬:가운데; 줄 높이:15px; 색상:#FFFFFF; 부동:오른쪽; Z-색인:3; } #맞아요{ 너비:15px; 높이:100%; 배경:#f00; 부동:오른쪽; 위치:절대; 오른쪽:0; 상단:0; 커서:e-크기 조정; 오버플로:숨김; 필터:알파(불투명도:0); 불투명도:0; Z-색인:1; } #하단{ 너비:100%; 높이:15px; 배경:#f00; 위치:절대; 왼쪽:0; 하단:0; 커서:n-크기 조정; 오버플로:숨김; 필터:알파(불투명도:0); 불투명도:0; Z-색인:1; } #div2p{ 패딩:10px; 줄 높이:24px; 글꼴 크기:13px; 텍스트 들여쓰기:24px; 색상:#996600; } #div2 h2{ 너비:100%; 높이:25px; 줄 높이:25px; 글꼴 크기:14px; 배경:#CC9900; 색상:#FFFFFF; 텍스트 들여쓰기:15px; 커서:이동; 오버플로:숨김; } 스타일> <br> window.onload=function()<br> {<br> var oDiv=document.getElementById("div1");<br> var oDiv2=document.getElementById("div2");<br> var zhezhao=document.getElementById("zhezhao");<br> var h2=oDiv2.getElementsByTagName("h2")[0];<br> var right=document.getElementById("right");<br> var Bottom=document.getElementById("bottom");<br> var mouseStart={};<br> var divStart={};<br> var rightStart={};<br> var BottomStart={};<br> //往右拽<br> right.onmousedown=function(ev)<br> {<br> var oEvent=ev||이벤트;<br> mouseStart.x=oEvent.clientX;<br> mouseStart.y=oEvent.clientY;<br> rightStart.x=right.offsetLeft;<br> if(right.setCapture)<br> {<br> right.onmousemove=doDrag1;<br> right.onmouseup=stopDrag1;<br> right.setCapture();<br> }<br> 그 외<br> {<br> document.addEventListener("mousemove",doDrag1,true);<br> document.addEventListener("mouseup",stopDrag1,true);<br> }<br> };<br> 함수 doDrag1(ev)<br> {<br> var oEvent=ev||이벤트;<br> var l=oEvent.clientX-mouseStart.x rightStart.x;<br> var w=l oDiv.offsetWidth;<br> <br> if(w<oDiv.offsetWidth)<br /> {<br /> w=oDiv.offsetWidth;<br /> }<br /> else if(w>document.documentElement.clientWidth-oDiv2.offsetLeft)<br> {<br> w=document.documentElement.clientWidth-oDiv2.offsetLeft-2;<br> }<br> oDiv2.style.width=w "px";<br> };<br> 함수 stopDrag1()<br> {<br> if(right.releaseCapture)<br> {<br> right.onmousemove=null;<br> right.onmouseup=null;<br> right.releaseCapture();<br> }<br> 그 외<br> {<br> document.removeEventListener("mousemove",doDrag1,true);<br> document.removeEventListener("mouseup",stopDrag1,true);<br> }<br> };<br> //往下拽<br> 하단.onmousedown=기능(ev)<br> {<br> var oEvent=ev||이벤트;<br> mouseStart.x=oEvent.clientX;<br> mouseStart.y=oEvent.clientY;<br> BottomStart.y=bottom.offsetTop;<br> if(bottom.setCapture)<br> {<br> Bottom.onmousemove=doDrag2;<br> Bottom.onmouseup=stopDrag2;<br> Bottom.setCapture();<br> }<br> 그 외<br> {<br> document.addEventListener("mousemove",doDrag2,true);<br> document.addEventListener("mouseup",stopDrag2,true);<br> }<br> };<br> 함수 doDrag2(ev)<br> {<br> var oEvent=ev||이벤트;<br> var t=oEvent.clientY-mouseStart.y BottomStart.y;<br> var h=t oDiv.offsetHeight;<br> <br> if(h<oDiv.offsetHeight)<br /> {<br /> h=oDiv.offsetHeight;<br /> }<br /> else if(h>document.documentElement.clientHeight-oDiv2.offsetTop)<br> {<br> h=document.documentElement.clientHeight-oDiv2.offsetTop-2;<br> }<br> <br> oDiv2.style.height=h "px";<br> };<br> 함수 stopDrag2()<br> {<br> if(bottom.releaseCapture)<br> {<br> Bottom.onmousemove=null;<br> Bottom.onmouseup=null;<br> Bottom.releaseCapture();<br> }<br> 그 외<br> {<br> document.removeEventListener("mousemove",doDrag2,true);<br> document.removeEventListener("mouseup",stopDrag2,true);<br> }<br> };<br> //往左右同时拽<br> oDiv.onmousedown=기능(ev)<br> {<br> var oEvent=ev||이벤트;<br> mouseStart.x=oEvent.clientX;<br> mouseStart.y=oEvent.clientY;<br> divStart.x=oDiv.offsetLeft;<br> divStart.y=oDiv.offsetTop;<br> if(oDiv.setCapture)<br> {<br> oDiv.onmousemove=doDrag;<br> oDiv.onmouseup=stopDrag;<br> oDiv.setCapture();<br> }<br> 그 외<br> {<br> document.addEventListener("mousemove",doDrag,true);<br> document.addEventListener("mouseup",stopDrag,true);<br> }<br> zhezhao.style.display='차단';<br> };<br> 함수 doDrag(ev)<br> {<br> var oEvent=ev||이벤트;<br> var l=oEvent.clientX-mouseStart.x divStart.x;<br> var t=oEvent.clientY-mouseStart.y divStart.y;<br> <br> <br> var w=l oDiv.offsetWidth;<br> var h=t oDiv.offsetHeight;<br> <br> if(w<oDiv.offsetWidth)<br /> {<br /> w=oDiv.offsetWidth;<br /> }<br /> else if(w>document.documentElement.clientWidth-oDiv2.offsetLeft)<br> {<br> w=document.documentElement.clientWidth-oDiv2.offsetLeft-2;<br> }<br> if(h<oDiv.offsetHeight)<br /> {<br /> h=oDiv.offsetHeight;<br /> }<br /> else if(h>document.documentElement.clientHeight-oDiv2.offsetTop)<br> {<br> h=document.documentElement.clientHeight-oDiv2.offsetTop-2;<br> }<br> <br> oDiv2.style.width=w "px";<br> oDiv2.style.height=h "px";<br> };<br> 함수 stopDrag()<br> {<br> if(oDiv.releaseCapture)<br> {<br> oDiv.onmousemove=null;<br> oDiv.onmouseup=null;<br> oDiv.releaseCapture();<br> }<br> 그 외<br> {<br> document.removeEventListener("mousemove",doDrag,true);<br> document.removeEventListener("mouseup",stopDrag,true);<br> }<br> zhezhao.style.display='none';<br> };<br> <br> //h2完美拖拽<br> h2.onmousedown=function(ev)<br> {<br> var oEvent=ev||이벤트;<br> mouseStart.x=oEvent.clientX;<br> mouseStart.y=oEvent.clientY;<br> divStart.x=oDiv2.offsetLeft;<br> divStart.y=oDiv2.offsetTop;<br> <br> if(h2.setCapture)<br> {<br> h2.onmousemove=doDrag3;<br> h2.onmouseup=stopDrag3;<br> h2.setCapture();<br> }<br> 그 외<br> {<br> document.addEventListener("mousemove",doDrag3,true);<br> document.addEventListener("mouseup",stopDrag3,true);<br> }<br> <br> zhezhao.style.display='차단';<br> };<br> 함수 doDrag3(ev)<br> {<br> var oEvent=ev||이벤트;<br> var l=oEvent.clientX-mouseStart.x divStart.x;<br> var t=oEvent.clientY-mouseStart.y divStart.y;<br> if(l<0)<br /> {<br /> ㅋ=0;<br /> }<br /> else if(l>document.documentElement.clientWidth-oDiv2.offsetWidth)<br> {<br> l=document.documentElement.clientWidth-oDiv2.offsetWidth;<br> }<br> if(t<0)<br /> {<br /> t=0;<br /> }<br />else if(t>document.documentElement.clientHeight-oDiv2.offsetHeight)<br> {<br> t=document.documentElement.clientHeight-oDiv2.offsetHeight;<br> }<br> oDiv2.style.left=l "px";<br> oDiv2.style.top=t "px";<br> };<br> 함수 stopDrag3()<br> {<br> if(h2.releaseCapture)<br> {<br> h2.onmousemove=null;<br> h2.onmouseup=null;<br> h2.releaseCapture();<br> }<br> 그 외<br> {<br> document.removeEventListener("mousemove",doDrag3,true);<br> document.removeEventListener("mouseup",stopDrag3,true);<br> }<br> <br> zhezhao.style.display='none';<br> }<br> };<br> <br> </머리><br> <br> <div id="div2"><br> <div style="너비:100%; 높이:100%; 오버플로:숨김;"><br> <h2>완벽한 드래그</h2><br> <p>드래그하는 것 외에도 드래그하여 확대할 수도 있습니다. Windows 창처럼 확대하거나 축소할 수 있습니다. 레이어의 오른쪽 하단을 길게 누르면 확대되거나 축소됩니다. 자유롭게 밖으로. 이를 사용하고 싶은 친구는 코드의 J를 클래스로 캡슐화할 수 있습니다. 외부에서 도입하는 것이 더 합리적입니다. '</p><br> <div id="right"></div><br> <div id="div1">드래그</div><br> <div id="bottom"></div><br> </div><br> </div><br> <div id="zhezhao"></div><br> </본문><br> </div>