js弹出一个可拖拽的div+背景变灰

以下代码在ie和firefox中都可以执行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript">
function isIE(){
return (document.all && window.ActiveXObject && !window.opera) ? true : false;
}
var loginDivWidth = 300;
var sign_in_flow = '<div style="background:#FF9900;">Login</div><div>e-mail:*</div><div>'
+ '<input type="text" id="sign_email" maxlength="64" size="30"/>'
+ '</div><div>password:*</div><div><input type="password" size="30"/>'
+ '</div><div><input type="button" value="login" />&nbsp;&nbsp;'
+ '&nbsp;&nbsp;<input type="button" value="cancel" οnclick="cancelSign();"/></div>';
function cancelSign(){
document.getElementById("sign_div").style.display = 'none';
document.getElementById("cover_div").style.display = 'none';
document.body.style.overflow = '';
};
function popCoverDiv(){
var coverDiv = document.createElement('div');
document.body.appendChild(coverDiv);
with(coverDiv.style) {
display = 'none';
position = 'absolute';
background = '#CCCCCC';
left = '0px';
top = '0px';
var bodySize = getBodySize();
width = bodySize[0] + 'px'
height = bodySize[1] + 'px';
zIndex = 98;
if (isIE()) {
filter = "Alpha(Opacity=60)";
} else {
opacity = 0.6;
}
}
coverDiv.id = 'cover_div';
}
function getBodySize(){
var bodySize = [];
with(document.documentElement) {
bodySize[0] = (scrollWidth>clientWidth)?scrollWidth:clientWidth;
bodySize[1] = (scrollHeight>clientHeight)?scrollHeight:clientHeight;
}
return bodySize;
}
function popSign(){
var signDiv = document.createElement('div');
document.body.appendChild(signDiv);
with (signDiv.style) {
display = 'none';
cursor='move';
position = 'absolute';
left = (document.documentElement.clientWidth - loginDivWidth)/2 + 'px';
top = (document.documentElement.clientHeight - 300)/2 + 'px';
width = loginDivWidth + 'px';
zIndex = 99;
background = '#FFFFFF';
border = '#66CCFF solid 1px';
}
signDiv.id = 'sign_div';
signDiv.align = "center";
document.getElementById("sign_div").innerHTML = sign_in_flow;
}
function popSignFlow() {
document.getElementById("cover_div").style.display = '';
document.getElementById("sign_div").style.display = '';
document.body.style.overflow = "hidden";
}

//以下是拖拽。。。
var offsetX = 0;
var offsetY = 0;
var currentLeft = 0;
var currentTop = 0;
var isDrag = false;

function stopEvent(evt){
var event = window.event?window.event:evt;
if (event.preventDefault) {
event.preventDefault();
event.stopPropagation();
} else {
event.returnValue = false;
}
}
function drag(){
popCoverDiv();
popSign()
document.getElementById('sign_div').onmousedown = function(evt){
var evt = window.event?window.event:evt;
if ((evt.which && evt.which == 1 ) || (evt.button && evt.button == 1)){
isDrag = true;
offsetX = evt.clientX;
offsetY = evt.clientY;
currentLeft = parseInt(document.getElementById('sign_div').style.left);
currentTop = parseInt(document.getElementById('sign_div').style.top);
}
stopEvent(evt);
}
document.onmousemove = function(evt){
if(isDrag){
var evt = window.event?window.event:evt;
document.getElementById('sign_div').style.left = evt.clientX - offsetX + currentLeft +'px';
document.getElementById('sign_div').style.top = evt.clientY - offsetY + currentTop +'px';
stopEvent(evt);
}
}
document.onmouseup = function(evt){
isDrag = false;
var evt = window.event?window.event:evt;
currentLeft = parseInt(document.getElementById('sign_div').style.left);
currentTop = parseInt(document.getElementById('sign_div').style.top);
stopEvent(evt);
}
}
</script>
</head>
<body onLoad="drag();">
<div>
<input type="button" οnclick="popSignFlow();" value="login"/>
</div>
</body></html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值