首頁 > web前端 > H5教程 > 主體

html5draggable屬性是如何做到頁面拖曳效果的?方法總結在這裡!

寻∝梦
發布: 2018-08-31 16:45:11
原創
3975 人瀏覽過

這篇文章主要為大家講述的技術關於draggable屬性實現頁面拖動的效果,往下讀下去,一步步的你會發現這個其實也不是很難,現在讓我們一起來看這篇文章吧

這篇文章就是介紹Draggable(拖曳)即實現頁面元素的拖曳效果的,所以,一步一步的來。

一、載入方式(首先是載入方式)

#1.css樣式載入:

<div id="box" class="easyui-draggable" style="width:200px;height:150px;background:#F5F6F7;">
    内容部分
</div>
登入後複製

使用css樣式加載Draggable,方便快捷,但是不利於管理,所以我們有課第二種加載方式,使用Jquery方式加載,一般我們都會使用Jquery的方式進行加載。

2.Jquery方式載入:

//不加属性
$(&#39;#box&#39;).draggable();
//JS部分
$(&#39;#box&#39;).draggable({
    revert : true,        //拖动后是否回到起始位置,boolean类型
    cursor : &#39;text&#39;,       //鼠标拖拽样式,十字,文本等
    handle : &#39;#pox&#39;,       //句柄,设置后只在设置后只能在当前元素下实现拖拽
    disabled : false,       //设置是否可以被拖拽
    edge : 50,          //设置边界往内多大距离可以实现拖拽
    axis : &#39;v&#39;,          //设置拖拽方向,v:垂直拖拽,h:水平拖拽
    proxy: &#39;clone&#39;,        //设置代理元素,使用clone时为复制当前元素
    deltaX : 10,         //被拖拽元素左上角距离当前光标的X轴方向的距离
    deltaY : 10,         //被拖拽元素左上角距离当前光标的Y轴方向的距离  
    proxy: function(source){    //自定义代理元素
    var p = $(&#39;<div style="border:1px solid
    #ccc;width:400px;height:200px;"></div>&#39;);
    p.html($(source).html()).appendTo(&#39;body&#39;);
    return p;
    },
});
//HTML部分
<div id="box" style="width:400px;height:200px;background:red;">
    内容部分
</div>
登入後複製

二、事件(第二是事件)

1.onBeforeDrag 拖曳前發生

$(&#39;#box&#39;).draggable({
    onBeforeDrag : function (e) {
        alert(&#39;拖动之前触发!&#39;);
        //return false;
    }
});
登入後複製

在拖曳前發生,既當滑鼠點擊元素時發生,當回傳false時將無法拖曳,我們不會讓它直接回傳false,因為這樣沒有任何意義,在使用時應該有充足的邏輯判斷。

2.onStartDrag 拖曳開始時發生

$(&#39;#box&#39;).draggable({
    onStartDrag : function (e) {
        alert(&#39;拖动开始时触发!&#39;);
        //return false;
    }
});
登入後複製

在滑鼠點擊後拖曳的一瞬間執行,執行時間在onBeforeDrag之後。

3.onDrag拖曳過程中執行

$(&#39;#box&#39;).draggable({
    onDrag : function (e) {
        alert(&#39;拖动过程中触发!&#39;);
    }
});
在拖
登入後複製

離開的過程中執行,當滑鼠一移動就會執行,當無法拖曳時返回false

4.onStopDrag 拖曳停止後發生

$(&#39;#box&#39;).draggable({
    onStopDrag : function (e) {
        alert(&#39;在拖动停止时触发!&#39;);
    }
});
登入後複製

在拖曳結束後觸發,即放開滑鼠時執行,無回傳值。

5.以上事件可組合使用,執行順序為onBeforeDrag -->onBeforeDrag -->onDrag --> onStopDrag

#
$(&#39;#box&#39;).draggable({
    onBeforeDrag : function (e) {
         alert(&#39;拖动之前触发!&#39;);
        //return false;
    },
    onStartDrag : function (e) {
       alert(&#39;拖动时触发!&#39;);
    },
    onDrag : function (e) {
        alert(&#39;拖动过程中触发!&#39;);
    },
    onStopDrag : function (e) {
        alert(&#39;在拖动停止时触发!&#39;);
},});
登入後複製

三、方法(第三是方法)

方法名稱:說明

  • option :傳回屬性物件

  • proxy :如果代理屬性被設定則傳回該拖曳代理元素

  • enabl :允許拖曳

  • disable :禁止拖曳

//返回属性对象
console.log($(&#39;#box&#39;).draggable(&#39;options&#39;));
//返回代理元素
onStartDrag : function (e) {
console.log($(&#39;#box&#39;).draggable(&#39;proxy&#39;));
},
//禁止拖动
$(&#39;#box&#39;).draggable(&#39;disable&#39;);
//允许拖放
$(&#39;#box&#39;).draggable(&#39;enable&#39;);
登入後複製

四、設定預設屬性(這是最後一個設定)

在一次設定後目前頁面所有拖曳都會共享這個屬性,不用再去設定。

$(function(){
    $.fn.draggable.defaults.cursor = &#39;text&#39;;
});
登入後複製

以上就是這篇關於draggable屬性的頁面拖曳方面的全部內容了(想學更多就來PHP中文網),有問題的可以在下方提問。

【小編推薦】

html中的ol標籤如何去掉標號呢?

    標籤的使用方法總結

    HTML中ul標籤如何去掉點? HTML無序列表的樣式實例解析

    #

    以上是html5draggable屬性是如何做到頁面拖曳效果的?方法總結在這裡!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!