この記事の例では、ドラッグして閉じることができる JS ポップアップ div レイヤーの完全な実装方法を説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。
<頭>
JS はドラッグ可能で閉じることができる div レイヤーをポップアップします
<スタイル>
html,body{高さ:100%;オーバーフロー:非表示;}
body,div,h2{マージン:0;パディング:0;}
ボディ{font:12px/1.5 タホマ;}
center{padding-top:10px;}
ボタン{カーソル:ポインタ;}
#win{position:absolute;top:50%;left:50%;width:400px;height:200px;background:#fff;border:4px Solid #f90;margin:-102px 0 0 -202px;display:none; }
h2{font-size:12px;height:18px;text-align:right;background:#FC0;border-bottom:3px Solid #f90;padding:5px;cursor:move;}
h2 スパン{カラー:#f90;カーソル:ポインター;背景:#fff;ボーダー:1px ソリッド #f90;パディング:0 2px;}
<スクリプト>
window.onload = function ()
{
var oWin = document.getElementById("win");
var oBtn = document.getElementsByTagName("ボタン")[0];
var oClose = document.getElementById("close");
var oH2 = oWin.getElementsByTagName("h2")[0];
var bDrag = false;
var disX = disY = 0;
oBtn.onclick = function ()
{
oWin.style.display = "ブロック"
};
oClose.onclick = function ()
{
oWin.style.display = "なし"
};
oClose.onmousedown = 関数 (イベント)
{
(イベント || window.event).cancelBubble = true;
};
oH2.onmousedown = 関数 (イベント)
{
var イベント = イベント || ウィンドウ.イベント;
bDrag = true;
disX = events.clientX - oWin.offsetLeft;
disY = イベント.clientY - oWin.offsetTop;
this.setCapture && this.setCapture();
false を返す
};
document.onmousemove = 関数 (イベント)
{
if (!bDrag) return;
var イベント = イベント || ウィンドウ.イベント;
var iL = events.clientX - disX;
var iT = events.clientY - disY;
var maxL = document.documentElement.clientWidth - oWin.offsetWidth;
var maxT = document.documentElement.clientHeight - oWin.offsetHeight
iL = iL
iL = iL > maxL : iL;
iT = iT
iT = iT > maxT : iT;
oWin.style.marginTop = oWin.style.marginLeft = 0;
oWin.style.left = iL "px";
oWin.style.top = iT "px";
false を返す
};
document.onmouseup = window.onblur = oH2.onlosecapture = function ()
{
bDrag = false;
oH2.releaseCapture && oH2.releaseCapture();
};
};
×