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)容感興趣的讀者可查看本站專題:《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)+鍵盤控制綜合效果的方法
- jQuery實(shí)現(xiàn)鼠標(biāo)拖動(dòng)div改變位置、大小的實(shí)踐
相關(guān)文章
jquery二級(jí)導(dǎo)航內(nèi)容均分的原理及實(shí)現(xiàn)
頭部導(dǎo)航二級(jí)導(dǎo)航有些內(nèi)容太長(zhǎng),一列的話太過(guò)難看,就要分成兩列,要做到按塊盡量均分,排列順序沒(méi)有限制2013-08-08jquery 面包屑導(dǎo)航 具體實(shí)現(xiàn)
jquery 面包屑導(dǎo)航 具體實(shí)現(xiàn),需要的朋友可以參考一下2013-06-06jquery動(dòng)態(tài)添加帶有樣式的HTML標(biāo)簽元素方法
下面小編就為大家分享一篇jquery動(dòng)態(tài)添加帶有樣式的HTML標(biāo)簽元素方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02JQuery動(dòng)態(tài)創(chuàng)建DOM、表單元素的實(shí)現(xiàn)代碼
代碼很簡(jiǎn)單,直接上代碼。別忘記引用JQuery包。2011-08-08基于Jquery的標(biāo)簽智能驗(yàn)證實(shí)現(xiàn)代碼
一直在尋找最快捷方便的信息驗(yàn)證方法,之前自己編過(guò)JS版驗(yàn)證但要寫(xiě)很多輔助代碼,經(jīng)過(guò)許多次改進(jìn),還是覺(jué)得太麻煩代碼還多,維護(hù)起太費(fèi)盡。2010-12-12jquery+ajax實(shí)現(xiàn)注冊(cè)實(shí)時(shí)驗(yàn)證實(shí)例詳解
這篇文章主要介紹了jquery+ajax實(shí)現(xiàn)注冊(cè)實(shí)時(shí)驗(yàn)證的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery基于ajax請(qǐng)求實(shí)現(xiàn)注冊(cè)時(shí)無(wú)刷新驗(yàn)證的相關(guān)技巧,需要的朋友可以參考下2015-12-12webpack中引用jquery的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇webpack中引用jquery的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06