javascript完美拖拽的实现方法
javascript完美拖拽的实现方法
发布时间:2016-12-30 来源:查字典编辑
摘要:HTML代码:复制代码代码如下:网站登录用户名:密码:CSS代码:复制代码代码如下:body,h2{margin:0;padding:0;}...

HTML代码:

复制代码 代码如下:

<!DOCTYPE HTML>

<html lang="en-US">

<head>

<meta charset="UTF-8">

<title></title>

<link rel="stylesheet" href="style.css" />

<script type="text/javascript" src="drag.js"></script>

<script type="text/javascript" src="demo.js"></script>

</head>

<body>

<div id="login">

<h2>网站登录</h2>

<div>

用户名:<input type="text" name="user" />

</div>

<div>

密码:<input type="password" name="pass" />

</div>

<div>

<input type="submit" value="登录" />

</div>

</div>

</body>

</html>

CSS代码:

复制代码 代码如下:

body, h2 {

margin:0;

padding:0;

}

#login {

width:350px;

height:250px;

border:1px solid #ccc;

position:absolute;

left:512px;

top:300px;

}

#login h2 {

font-size:14px;

text-align:center;

height:30px;

line-height:30px;

background:#f60;

color:white;

cursor:move;

margin-bottom:30px;

letter-spacing:1px;

}

#login .user, #login .pass {

text-align:center;

font-size:12px;

height:60px;

line-height:40px;

}

#login .txt {

width:200px;

border:1px solid #ccc;

background:#fff;

height:30px;

line-height:30px;

}

#login .submit {

text-align:right;

}

#login .button {

width:100px;

height:30px;

background:#06f;

border:none;

cursor:pointer;

margin:10px 30px;

color:white;

letter-spacing:1px;

font-weight:bold;

}

拖拽核心代码:

复制代码 代码如下:

function drag(obj) {

if (typeof obj === 'string') {

var obj = document.getElementById(obj);

} else {

var obj = obj;

}

function fixEvent(event) {

event.target = event.srcElement;

event.preventDefault = fixEvent.preventDefault;

return event;

}

fixEvent.preventDefault = function () {

this.returnValue = false;

};

obj.onmousedown = mousedown;

function mousedown(e) {

var e = e || fixEvent(window.event);

var disX = e.clientX - obj.offsetLeft;

var disY = e.clientY - obj.offsetTop;

if (e.target.tagName === 'H2') {

document.onmousemove = move;

document.onmouseup = up;

} else {

document.onmousemove = null;

document.onmouseup = null;

}

function move(e) {

var e = e || fixEvent(window.event);

var left = e.clientX - disX;

var top = e.clientY - disY;

if (obj.setCapture) {

obj.setCapture();

}

if (left < 0) {

left = 0;

} else if (left > document.documentElement.clientWidth - obj.offsetWidth) {

left = document.documentElement.clientWidth - obj.offsetWidth;

}

if (top < 0) {

top = 0;

} else if (top > document.documentElement.clientHeight - obj.offsetHeight) {

top = document.documentElement.clientHeight - obj.offsetHeight;

}

obj.style.left = left + 'px';

obj.style.top = top + 'px';

return false;

};

function up() {

if (obj.releaseCapture) {

obj.releaseCapture();

}

document.onmousemove = null;

document.onmouseup = null;

}

};

}

调用代码:

复制代码 代码如下:

window.onload = function () {

var login = document.getElementById('login');

drag(login);

};

欢迎批评指正!!!

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类