您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
javascript窗口拖拽的实现
发布时间:2018-03-28 18:28:36编辑:雪饮阅读()
结合 onmousedown、onmousemove、onmouseup三个事件以及offsetLeft、offsetTop、clientX、clientY的灵活使用就可以实现可拖拽的窗口
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>后台登录</title>
<style>
table,caption,th,td{
text-align:center;
border:1px solid pink;
}
table{width:20em;}
</style>
<script type="text/javascript">
window.onload=function(){
var box=document.getElementById("box");
box.onmousedown=function(evt){
//获取点击窗体中的位置与窗体左边界的距离,设为距离A
var boxInnerLeft=evt.clientX-box.offsetLeft;
//获取点击窗体中的位置与窗体上边界的距离,设为距离B
var boxInnerTop=evt.clientY-box.offsetTop;
document.onmousemove=function(evt){
//移动时候获取鼠标x位置应该不包含距离A,因为当设置left后距离A会自动加上(div的起点是左上角而非中心)
var boxOutLeft=evt.clientX-boxInnerLeft;
box.style.left=boxOutLeft+"px";
//与boxOutLeft同理
var boxOutTop=evt.clientY-boxInnerTop;
box.style.top=boxOutTop+"px";
box.style.position="absolute";
console.log(evt);
}
document.onmouseup=function(){document.onmousemove=null;}
}
}
</script>
</head>
<body>
<form action="{:U('login')}" method="post">
<center>
<table id="box" style="left:0px;top:0px;">
<caption style="cursor:move;">管理员登录</caption>
<thead>
<tr>
<th colspan='2'><img src="/Public/images/object/lg.jpg" style="width:100%;"></th>
</tr>
</thead>
<tbody>
<tr>
<td>用户名:</td><td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td><td><input type="text" name="password"></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan='2' style="text-align:center">
<input type="submit" value="登录" style="width:100%;">
</td>
</tr>
</tfoot>
</table>
</center>
</form>
</body>
</html>
关键字词:javascript,拖拽