jquery實(shí)現(xiàn)拖動效果(代碼分享)
話不多說,請看代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<style type="text/css">
.page{text-align:left;}
.dragDiv{border:1px solid #ddd; padding:10px; width:300px; margin:0 auto; border-radius:4px; box-shadow:0 1px 2px #fefefe; position: fixed;}
</style>
<div class="dragDiv" id="drag">
<div class="drag-head">自己動手試試</div>
<div class="drag-body">
點(diǎn)擊鼠標(biāo)拖拖看
</div>
</div>
</body>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
var _drag = {};
_drag.top = 0; //拖動過的位置距離上邊
_drag.left = 0; //拖動過的位置距離左邊
_drag.maxLeft; //距離左邊最大的距離
_drag.maxTop; //距離上邊最大的距離
_drag.dragging = false; //是否拖動標(biāo)志
//拖動函數(shù)
function bindDrag(el){
var winWidth = $(window).width(), winHeight =$(window).height(),objWidth = $(el).outerWidth(), objHeight = $(el).outerHeight();
_drag.maxLeft = winWidth - objWidth, _drag.maxTop = winHeight - objHeight;
var els = el.style,x=0,y=0;
var objTop = $(el).offset().top, objLeft = $(el).offset().left;
$(el).mousedown(function(e){
_drag.dragging = true;
_drag.isDragged = true;
x = e.clientX - el.offsetLeft;
y = e.clientY - el.offsetTop;
el.setCapture && el.setCapture();
$(document).bind('mousemove',mouseMove).bind('mouseup',mouseUp);
return false;
});
function mouseMove(e){
e = e || window.event;
if(_drag.dragging){
_drag.top = e.clientY - y;
_drag.left = e.clientX - x;
_drag.top = _drag.top > _drag.maxTop ? _drag.maxTop : _drag.top;
_drag.left = _drag.left > _drag.maxLeft ? _drag.maxLeft : _drag.left;
_drag.top = _drag.top < 0 ? 0 : _drag.top;
_drag.left = _drag.left <0 ? 0 : _drag.left;
els.top = _drag.top + 'px';
els.left = _drag.left+ 'px';
return false;
}
}
function mouseUp(e){
_drag.dragging = false;
el.releaseCapture && el.releaseCapture();
e.cancelBubble = true;
$(document).unbind('mousemove',mouseMove).unbind('mouseup',mouseUp);
}
$(window).resize(function(){
var winWidth = $(window).width(),
winHeight = $(window).height(),
el = $(el),
elWidth = el.outerWidth(),
elHeight = el.outerHeight(),
elLeft = parseFloat(el.css('left')),
elTop = parseFloat(el.css('top'));
_drag.maxLeft = winWidth - elWidth;
_drag.maxTop = winHeight - elHeight;
_drag.top = _drag.maxTop < elTop ? _drag.maxTop : elTop;
_drag.left = _drag.maxLeft < elLeft ? _drag.maxLeft : elLeft;
el.css({
top:_drag.top,
left:_drag.left
})
})
}
bindDrag(document.getElementById('drag'));
</script>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- 自己封裝的一個(gè)原生JS拖動方法(推薦)
- 基于JS組件實(shí)現(xiàn)拖動滑塊驗(yàn)證功能(代碼分享)
- Android通過自定義ImageView控件實(shí)現(xiàn)圖片的縮放和拖動的實(shí)現(xiàn)代碼
- Android 仿淘寶、京東商品詳情頁向上拖動查看圖文詳情控件DEMO詳解
- Android RecyclerView滑動刪除和拖動排序
- 原生js實(shí)現(xiàn)可拖動的登錄框效果
- 基于css3新屬性transform及原生js實(shí)現(xiàn)鼠標(biāo)拖動3d立方體旋轉(zhuǎn)
- js實(shí)現(xiàn)div在頁面拖動效果
- javascript html5 canvas實(shí)現(xiàn)可拖動省份的中國地圖
- 拖動時(shí)防止選中
相關(guān)文章
JQuery 操作select標(biāo)簽實(shí)現(xiàn)代碼
我們經(jīng)常遇到要操作DOM元素,例如<select>,在Asp.net中Dropdownlist原型就是select。2010-05-05
jQuery Validate表單驗(yàn)證深入學(xué)習(xí)
這篇文章主要介紹了jQuery Validate表單驗(yàn)證入門知識,該插件捆綁了一套有用的驗(yàn)證方法,包括 URL 和電子郵件驗(yàn)證,同時(shí)提供了一個(gè)用來編寫用戶自定義方法的 API,感興趣的小伙伴們可以參考一下2015-12-12
Jquery ajaxStart()與ajaxStop()方法(實(shí)例講解)
本篇文章主要是對Jquery中的ajaxStart()與ajaxStop()方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12
使用Jquery來實(shí)現(xiàn)可以輸入值的下拉選單 雛型
最近案子中,需要使用下拉選單,但問題是,里面選項(xiàng)都會有各 其他:,然後 可以 讓 user 在輸入2011-12-12
JQuery實(shí)現(xiàn)動態(tài)適時(shí)改變字體顏色的方法
這篇文章主要介紹了JQuery實(shí)現(xiàn)動態(tài)適時(shí)改變字體顏色的方法,實(shí)例分析了jQuery操作鼠標(biāo)事件及顏色的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
jQuery實(shí)現(xiàn)統(tǒng)計(jì)輸入文字個(gè)數(shù)的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)統(tǒng)計(jì)輸入文字個(gè)數(shù)的方法,涉及jQuery操作鼠標(biāo)事件及dom元素的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
jQuery實(shí)現(xiàn)將div中滾動條滾動到指定位置的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)將div中滾動條滾動到指定位置的方法,涉及jQuery結(jié)合animate方法動態(tài)操作頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下2016-08-08
jQuery插件ImageDrawer.js實(shí)現(xiàn)動態(tài)繪制圖片動畫(附源碼下載)
ImageDrawer.js是一款可以實(shí)現(xiàn)動態(tài)繪制圖片動畫的jQuery插件,接下來通過本文給大家介紹jQuery插件ImageDrawer.js實(shí)現(xiàn)動態(tài)繪制圖片動畫(附源碼下載),需要的朋友參考下2016-02-02

