弾戸をドラッグして、元のjsを実現します.

4429 ワード

直接運行して効果を見ることができて、肝心なところはすでに注釈して説明して、あなたに対してある程度助けがあることを望みます.
//g() dom function g(id) { return document.getElementById(id); } // g('dialog_btn').onclick = function () { g('mask').style.display = 'block'; g('dialog').style.display = 'block'; autoCenter(g('dialog')); } // g('dialog_close').onclick = function () { g('mask').style.display = 'none'; g('dialog').style.display = 'none'; } // function autoCenter(el) { // var windowW = document.documentElement.clientWidth; var windowH = document.documentElement.clientHeight; // var elW = el.offsetWidth; var elH = el.offsetHeight; el.style.left = (windowW-elW)/2 + 'px'; el.style.top = (windowH-elH)/2 + 'px'; } // //document.attachEvent IE , ,firefox、chrome css -moz-user-select: none; -webkit-user-select: none; if(document.attachEvent) { g('dialog').attachEvent('onselectstart', function () { return false; }) } // , window.onresize = function () { autoCenter(g('dialog')); } // //1. , , //2. , //3. , //4. var mx = 0; // x,y ( left top) var my = 0; var dx = 0; // x,y var dy = 0; var isDraging = false; // // g('move_part').addEventListener('mousedown', function (e) { var e = e || window.event; // ,window.event IE mx = e.pageX; // X my = e.pageY; // Y dx = g('dialog').offsetLeft; // dy = g('dialog').offsetTop; // isDraging = true; // }) // // onmousemove document.onmousemove = function (e) { var e = e || window.event; var x = e.pageX; // X var y = e.pageY; // X if(isDraging) { var moveX = x - mx + dx; // + left = left var moveY = y - my + dy; // top // // var pageW = document.documentElement.clientWidth; var pageH = document.documentElement.clientHeight; // var dialogW = g('dialog').offsetWidth; var dialogH = g('dialog').offsetHeight; var maxX = pageW - dialogW; //x var maxY = pageH - dialogH; //x //Math.min() Math.max() moveX = Math.min(Math.max(0, moveX), maxX); // left , 0-maxX moveY = Math.min(Math.max(0, moveY), maxY); // top , 0-maxY // g('dialog').style.left = moveX + 'px'; g('dialog').style.top = moveY + 'px'; } } // g('move_part').addEventListener('mouseup', function () { isDraging = false; })