jQuery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)浮層功能示例【拖動(dòng)div等任何標(biāo)簽】
本文實(shí)例講述了jQuery實(shí)現(xiàn)的鼠標(biāo)拖動(dòng)浮層功能。分享給大家供大家參考,具體如下:
拖動(dòng)浮層(div等任何標(biāo)簽)
之前項(xiàng)目做到一個(gè)彈出層需要一個(gè)拖動(dòng)功能,上網(wǎng)上查了資料,發(fā)現(xiàn)很多方法,但是感覺(jué)都很繁瑣,有的甚至沒(méi)看懂。看了幾個(gè)方法后發(fā)現(xiàn)基本上都是使用mousedown、mousemove和mouseup這三個(gè)函數(shù)來(lái)寫(xiě)的,然后就自己寫(xiě)了個(gè)移動(dòng)div的方法。
先用mousedown來(lái)判斷是否要開(kāi)啟移動(dòng),然后通過(guò)mousemove來(lái)獲得移動(dòng)的距離,實(shí)現(xiàn)移動(dòng);最后通過(guò)mouseup事件來(lái)判斷移動(dòng)結(jié)束了。
完整代碼實(shí)例:
<html>
<head>
<meta charset="utf-8"></meta>
<title>Drag Div</title>
<script src="http://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>
</head>
<body>
<div id="moveDiv" style="width:300px;height:300px;background-color:red;position:absolute;">
<div id="moveBar" style="background-color:green;height:30px;cursor: move;"></div>
</div>
<script type="text/javascript">
var dragJob=false;
$(document).on("mousedown", '#moveBar', function (e) {
dragJob = true;
});
document.onmousemove = function (e) {
if (dragJob) {
var e = e || window.event;
var height = $(document.body).height();
var width = $(window).width();
var widthJob = $("#moveDiv").width();
var heightJob = $("#moveDiv").height();
var left = e.clientX - widthJob / 2;
var top = e.clientY - 18 + $(document).scrollTop();
if (top >= 0 && top < height - heightJob) {
$("#moveDiv").css("top", top);
}
if (left >= 0 && left < width - widthJob) {
$("#moveDiv").css("left", left);
}
return false;
}
};
$(document).mouseup(function (e) {
dragJob = false;
});
</script>
</body>
</html>
這里使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼,可獲得如下運(yùn)行效果:

更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《jQuery拖拽特效與技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jquery中Ajax用法總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常見(jiàn)經(jīng)典特效匯總》、《jQuery動(dòng)畫(huà)與特效用法總結(jié)》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- jquery div拖動(dòng)效果示例代碼
- jQuery拖動(dòng)div、移動(dòng)div、彈出層實(shí)現(xiàn)原理及示例
- jQuery實(shí)現(xiàn)單擊彈出Div層窗口效果(可關(guān)閉可拖動(dòng))
- jquery拖動(dòng)改變div大小
- 使用jQuery的easydrag插件實(shí)現(xiàn)可拖動(dòng)的DIV彈出框
- jquery實(shí)現(xiàn)可拖動(dòng)DIV自定義保存到數(shù)據(jù)的實(shí)例
- jQuery實(shí)現(xiàn)Div拖動(dòng)+鍵盤(pán)控制綜合效果的方法
- jQuery實(shí)現(xiàn)鼠標(biāo)拖動(dòng)div改變位置、大小的實(shí)踐
相關(guān)文章
遍歷json獲得數(shù)據(jù)的幾種方法小結(jié)
下面小編就為大家?guī)?lái)一篇遍歷json獲得數(shù)據(jù)的幾種方法小結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
為jquery.ui.dialog 增加“在當(dāng)前鼠標(biāo)位置打開(kāi)”的功能
在使用jquery.ui.dialog的過(guò)程中,發(fā)現(xiàn)position參數(shù)有些問(wèn)題,無(wú)法通過(guò)position: [PosX, PosY]動(dòng)態(tài)傳遞位置參數(shù)。下面是官方demo 代碼2009-11-11
基于jQuery架構(gòu)javascript基礎(chǔ)體系
jQuery畢竟還只是一個(gè)基礎(chǔ)的最底層的工具集,封裝元素選擇器,事件等等,基本上能滿足一般的需求,但要從整體的WEB的周度來(lái)看,為了提高javascript開(kāi)發(fā)的效率與可重用性,就需要有一個(gè)整體的布局2011-01-01
jQuery焦點(diǎn)圖輪播插件KinSlideshow用法分析
這篇文章主要介紹了jQuery焦點(diǎn)圖輪播插件KinSlideshow用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery焦點(diǎn)圖輪播插件KinSlideshow的參數(shù)含義與使用方法,需要的朋友可以參考下2016-06-06
jQuery插件MovingBoxes實(shí)現(xiàn)左右滑動(dòng)中間放大圖片效果
本篇文章主要介紹jQuery中MovingBoxes左右滑動(dòng)放大圖片插件示例,實(shí)現(xiàn)左右滑動(dòng)和放大效果,有興趣的可以了解一下。2017-02-02
jquery插件jbox使用iframe關(guān)閉問(wèn)題
最近做需要用到彈出窗口,發(fā)現(xiàn)JBox不錯(cuò),可以支持iframe,但是發(fā)現(xiàn)個(gè)問(wèn)題,在iframe中添加一個(gè)按鈕點(diǎn)擊此按鈕2009-02-02
利用jQuery.Validate異步驗(yàn)證用戶名是否存在(推薦)
這篇文章主要介紹了利用jQuery.Validate異步驗(yàn)證用戶名是否存在的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12

