JavaScriptはモダリティを実現し、ウィンドウをドラッグすることができます.

5042 ワード

<html>
<head>
<style>
div.titleBar{background: #2279F3;margin: 0px auto;width: 100%;height: 21px;border: #0000FF solid 1px;}
div.closeButton{float: right;}
div.mainBody{margin: auto;}
#divModalDialog{border:solid 1px;background:white;POSITION: absolute;left:0px;top:0px;DISPLAY: none;z-index:2;height:200px;WIDTH: 350px;}
#divModal{BACKGROUND-COLOR:#ECE9D8; FILTER: alpha(opacity=50);opacity: 0.5; LEFT: 0px; POSITION:absolute; TOP: 0px}
</style>
<script>
function showModel()
{
     divModalDialog.style.display = "block";
     resizeModal();
     window.onresize = resizeModal;
doSelect("hidden");
}
function closeModel()
{
     divModal.style.width = "0px";
     divModal.style.height = "0px";
     divModalDialog.style.display = "none";
     window.onresize = null;
doSelect("visible");
}
function doSelect(status)
{
var allObj=document.getElementsByTagName( "select"); 
for(i=0;i<allObj.length;i++){   
   if(allObj.getAttribute("hide")!="true"){   
    allObj.style.visibility=status;
   }
}
}
function resizeModal()
{
     divModal.style.width = document.body.scrollWidth;
     divModal.style.height = document.body.scrollHeight;
     divModalDialog.style.left = ((document.body.offsetWidth - divModalDialog.offsetWidth) / 2);
     divModalDialog.style.top = ((document.body.offsetHeight - divModalDialog.offsetHeight) / 2);
}
var mouseOffset = null;   
var iMouseDown = false; 
function mouseMove(ev){   
    ev = ev || window.event;   
    var mousePos = mouseCoords(ev);
    if(iMouseDown){
        divModalDialog.style.left = mousePos.x-mouseOffset.x;
        divModalDialog.style.top = mousePos.y-mouseOffset.y;
    }
}
function mouseUp(ev){     
iMouseDown = false;   
}   

function mouseDown(ev){ 
    ev = ev || window.event; 
    var target = ev.target || ev.srcElement;   
if(target.getAttribute("id") == "title"){   
    iMouseDown = true; 
    mouseOffset = getMouseOffset(target,ev);
}   
} 

function mouseCoords(ev) {   
if(ev.pageX || ev.pageY) {   
    return {x:ev.pageX, y:ev.pageY};   
}   
return {   
    x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,   
    y:ev.clientY + document.body.scrollTop - document.body.clientTop   
};   
}
function getMouseOffset(target, ev) {   
ev = ev || window.event;   
var docPos = getPosition(target);   
var mousePos = mouseCoords(ev);   
return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y} ;   
} 

function getPosition(e) {   
   var left = 0;   
   var top = 0;   
   while (e.offsetParent) {   
     left += e.offsetLeft;   
     top += e.offsetTop;   
     e = e.offsetParent;   
}   
left += e.offsetLeft;   
top += e.offsetTop;   
return {x:left, y:top} ;   
} 

document.onmousemove = mouseMove;   
document.onmousedown = mouseDown;   
document.onmouseup = mouseUp; 
</script>
</head>
<body>
<input type="button" value="    " onclick="showModel()" />
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<select><option>a</option><option>b</option></select>
<!--   div   select,            ,    select    ,           -->
<!--             select,               。-->
<!--      hide="true"                      -->
<select hide="true" style="visibility:hidden"><option>a</option><option>b</option></select>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input >
<!--      -->
<DIV id="divModal"></div>
<!--      end -->
<!--      -->
<DIV id="divModalDialog" >
<div class="titleBar" id="title">
    <div class="closeButton"><a href="javascript:closeModel();">[X]</a></div> 
</div>
<div class="mainBody">
               
</div>
</DIV><!--      end -->
</body>
</html>