js 테이프 드래그 실현
2867 단어 전단 개발
목차
//
(function(){
//
var oDiv1=document.getElementById('div1')
var oDrag1=document.getElementById('drag1')
oDrag1.onmousedown=function(ev){
var oEvent=ev||event
//
var pos=getMousePosition(oEvent)
var disX=pos.x - oDrag1.offsetLeft
var disY=pos.y - oDrag1.offsetTop
//
var oBox=document.createElement('div')
oBox.className='box'
oBox.style.width=oDrag1.offsetWidth-2+'px'
oBox.style.height=oDrag1.offsetHeight-2+'px'
// ,
oBox.style.left=oDrag1.offsetLeft+'px'
oBox.style.top=oDrag1.offsetTop+'px'
// oDiv1 ,
oDiv1.appendChild(oBox)
//
if(oBox.setCapture){
// Ie7-11
oBox.onmousemove=mouseMove
oBox.onmouseup=mouseUp
//
oBox.setCapture()
}else{
// FF,Chrome
document.onmousemove=mouseMove
document.onmouseup=mouseUp
}
//
function getMousePosition(ev){
// scrollTop
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop
var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft
return {x:ev.clientX + scrollLeft,y:ev.clientY+scrollTop}
}
//
function mouseMove(ev){
// l,t
var oEvent=ev||event
var pis=getMousePosition(oEvent)
var l=pis.x-disX
var t=pis.y-disY
oBox.style.left=l+'px'
oBox.style.top=t+'px'
}
//
function mouseUp(){
//
this.onmousemove=null
this.onmouseup=null
oDrag1.style.left=oBox.offsetLeft+'px'
oDrag1.style.top=oBox.offsetTop+'px'
//
oDiv1.removeChild(oBox)
if (oBox.releaseCapture) {
oBox.releaseCapture()
}
}
// FF
return false
}
})();
코드 분석
별빛 Github
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Chrome Extension 2 편 -- 통신메모: 만약 여러 페이지 가 onMessage 사건 을 감청 한다 면, 어떤 사건 에 대해 서 는 sendResponse () 를 처음 호출 하 는 것 만 성공 적 으로 응답 할 수 있 고, 모든 다른 응답 은 무 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.