Draggable(拖動)即實現頁面元素的拖動效果。
創(chuàng)新互聯公司專注于龍子湖網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供龍子湖營銷型網站建設,龍子湖網站制作、龍子湖網頁設計、龍子湖網站官網定制、小程序定制開發(fā)服務,打造龍子湖網絡公司原創(chuàng)品牌,更為您提供龍子湖網站排名全網營銷落地服務。
一、加載方式
1.css樣式加載:
內容部分
使用css樣式加載Draggable,方便快捷,但是不利于管理,所以我們有課第二種加載方式,使用Jquery方式加載,一般我們都會使用Jquery的方式進行加載。
2.Jquery方式加載:
//不加屬性 $('#box').draggable(); //JS部分 $('#box').draggable({ revert : true, //拖動后是否回到起始位置,boolean類型 cursor : 'text', //鼠標拖拽樣式,十字,文本等 handle : '#pox', //句柄,設置后只在設置后只能在當前元素下實現拖拽 disabled : false, //設置是否可以被拖拽 edge : 50, //設置邊界往內多大距離可以實現拖拽 axis : 'v', //設置拖拽方向,v:垂直拖拽,h:水平拖拽 proxy: 'clone', //設置代理元素,使用clone時為復制當前元素 deltaX : 10, //被拖拽元素左上角距離當前光標的X軸方向的距離 deltaY : 10, //被拖拽元素左上角距離當前光標的Y軸方向的距離 proxy: function(source){ //自定義代理元素 var p = $(''); p.html($(source).html()).appendTo('body'); return p; }, }); //HTML部分內容部分
二、事件
1.onBeforeDrag 拖動前發(fā)生
$('#box').draggable({ onBeforeDrag : function (e) { alert('拖動之前觸發(fā)!'); //return false; } });
在拖動前發(fā)生,既當鼠標點擊元素時發(fā)生,當返回false時將無法拖拽,我們不會讓它直接返回false,因為這樣沒有任何意義,在使用時應該有充足的邏輯判斷。
2.onStartDrag 拖動開始時發(fā)生
$('#box').draggable({ onStartDrag : function (e) { alert('拖動開始時觸發(fā)!'); //return false; } });
在鼠標點擊后拖動的一瞬間執(zhí)行,執(zhí)行時間在onBeforeDrag之后。
3.onDrag拖拽過程中執(zhí)行
$('#box').draggable({ onDrag : function (e) { alert('拖動過程中觸發(fā)!'); } });
在拖動的過程中執(zhí)行,當鼠標一移動就會執(zhí)行,當不能拖動時返回false
4.onStopDrag 拖動停止后發(fā)生
$('#box').draggable({ onStopDrag : function (e) { alert('在拖動停止時觸發(fā)!'); } });
在拖動結束后觸發(fā),即松開鼠標時執(zhí)行,無返回值。
5.以上事件可組合使用,執(zhí)行順序為onBeforeDrag --> onBeforeDrag --> onDrag --> onStopDrag
$('#box').draggable({ onBeforeDrag : function (e) { alert('拖動之前觸發(fā)!'); //return false; }, onStartDrag : function (e) { alert('拖動時觸發(fā)!'); }, onDrag : function (e) { alert('拖動過程中觸發(fā)!'); }, onStopDrag : function (e) { alert('在拖動停止時觸發(fā)!'); },});
三、方法
方法名 | 說明 |
option | 返回屬性對象 |
proxy | 如果代理屬性被設置則返回該拖動代理元素 |
enabl | 允許拖 |
disable | 禁止拖動 |
//返回屬性對象 console.log($('#box').draggable('options')); //返回代理元素 onStartDrag : function (e) { console.log($('#box').draggable('proxy')); }, //禁止拖動 $('#box').draggable('disable'); //允許拖放 $('#box').draggable('enable');
四、設置默認屬性
在一次設置后當前頁面所有拖拽都會共享這個屬性,不用再去設置。
$(function(){ $.fn.draggable.defaults.cursor = 'text'; });