javascript完美拖拽的實(shí)現(xiàn)方法
<!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>網(wǎng)站登錄</h2>
<div class="user">
用戶名:<input type="text" name="user" class="txt" />
</div>
<div class="pass">
密 碼:<input type="password" name="pass" class="txt" />
</div>
<div class="submit">
<input type="submit" value="登錄" class="button" />
</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;
}
};
}
調(diào)用代碼:
window.onload = function () {
var login = document.getElementById('login');
drag(login);
};
歡迎批評(píng)指正!!!
- javascript 圖片放大效果函數(shù)
- 一個(gè)簡(jiǎn)單的javascript圖片放大效果代碼
- javascript 圖片放大縮小功能實(shí)現(xiàn)代碼
- JavaScript圖片放大技術(shù)(放大鏡)實(shí)現(xiàn)代碼分享
- 原生javascript實(shí)現(xiàn)DIV拖拽并計(jì)算重復(fù)面積
- Javascript 拖拽的一些簡(jiǎn)單的應(yīng)用(逐行分析代碼,讓你輕松了拖拽的原理)
- JavaScript實(shí)現(xiàn)文字與圖片拖拽效果的方法
- javascript實(shí)現(xiàn)了照片拖拽點(diǎn)擊置頂?shù)恼掌瑝Υa
- javascript實(shí)現(xiàn)完美拖拽效果
- JavaScript實(shí)現(xiàn)的簡(jiǎn)單拖拽效果
- JavaScript實(shí)現(xiàn)可拖拽的拖動(dòng)層Div實(shí)例
- js實(shí)現(xiàn)圖片放大和拖拽特效代碼分享
相關(guān)文章
如何從JavaScript數(shù)組中刪除空對(duì)象
JS中數(shù)組是我們較為常用的一種數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于如何從JavaScript數(shù)組中刪除空對(duì)象的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05原生JS實(shí)現(xiàn)移動(dòng)端web輪播圖詳解(結(jié)合Tween算法造輪子)
在做移動(dòng)端開(kāi)發(fā)的時(shí)候,必不可少的是輪播圖,下面這篇文章主要給大家介紹了關(guān)于利用純JS實(shí)現(xiàn)移動(dòng)端web輪播圖的相關(guān)資料,重要的是結(jié)合Tween算法造輪子,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09tangram.js庫(kù)實(shí)現(xiàn)js類的方式實(shí)例分析
這篇文章主要介紹了tangram.js庫(kù)實(shí)現(xiàn)js類的方式,結(jié)合實(shí)例形式分析了tangram.js庫(kù)實(shí)現(xiàn)類的創(chuàng)建、繼承等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01JS實(shí)現(xiàn)轉(zhuǎn)動(dòng)隨機(jī)數(shù)抽獎(jiǎng)特效代碼
這篇文章主要為大家詳細(xì)介紹了一款轉(zhuǎn)動(dòng)隨機(jī)數(shù)抽獎(jiǎng)的JS特效代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08JavaScript實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01http頭部字段Origin和Access-Control-Allow-Origin解決請(qǐng)求跨域
這篇文章主要為大家介紹了http頭部字段Origin和Access-Control-Allow-Origin解決請(qǐng)求跨域示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06對(duì)table和ul實(shí)現(xiàn)js分頁(yè)示例分享
本文主要介紹了js對(duì)table和ul li實(shí)現(xiàn)前臺(tái)分頁(yè),需要的朋友可以參考下2014-02-02