html5draggable属性是如何做到页面拖动效果的?方法总结在这里!

寻∝梦
Lepaskan: 2018-08-31 16:45:11
asal
3975 orang telah melayarinya

本篇文章主要为大家讲述的技术关于draggable属性实现页面拖动的效果,往下读下去,一步步的你会发现这个其实也不是很难,现在让我们一起来看这篇文章吧

本篇文章就是介绍Draggable(拖动)即实现页面元素的拖动效果的,所以,一步一步的来。

一、加载方式(首先是加载方式)

1.css样式加载:

<div id="box" class="easyui-draggable" style="width:200px;height:150px;background:#F5F6F7;">
    内容部分
</div>
Salin selepas log masuk

使用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>
Salin selepas log masuk

二、事件(第二是事件)

1.onBeforeDrag 拖动前发生

$(&#39;#box&#39;).draggable({
    onBeforeDrag : function (e) {
        alert(&#39;拖动之前触发!&#39;);
        //return false;
    }
});
Salin selepas log masuk

在拖动前发生,既当鼠标点击元素时发生,当返回false时将无法拖拽,我们不会让它直接返回false,因为这样没有任何意义,在使用时应该有充足的逻辑判断。

2.onStartDrag 拖动开始时发生

$(&#39;#box&#39;).draggable({
    onStartDrag : function (e) {
        alert(&#39;拖动开始时触发!&#39;);
        //return false;
    }
});
Salin selepas log masuk

在鼠标点击后拖动的一瞬间执行,执行时间在onBeforeDrag之后。

3.onDrag拖拽过程中执行

$(&#39;#box&#39;).draggable({
    onDrag : function (e) {
        alert(&#39;拖动过程中触发!&#39;);
    }
});
在拖
Salin selepas log masuk

动的过程中执行,当鼠标一移动就会执行,当不能拖动时返回false

4.onStopDrag 拖动停止后发生

$(&#39;#box&#39;).draggable({
    onStopDrag : function (e) {
        alert(&#39;在拖动停止时触发!&#39;);
    }
});
Salin selepas log masuk

在拖动结束后触发,即松开鼠标时执行,无返回值。

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;);
},});
Salin selepas log masuk

三、方法(第三是方法)

方法名:说明

  • 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;);
Salin selepas log masuk

四、设置默认属性(这是最后一个设置)

在一次设置后当前页面所有拖拽都会共享这个属性,不用再去设置。

$(function(){
    $.fn.draggable.defaults.cursor = &#39;text&#39;;
});
Salin selepas log masuk

以上就是这篇关于draggable属性的页面拖动方面的全部内容了(想学更多就来PHP中文网),有问题的可以在下方提问。

【小编推荐】

html中的ol标签如何去掉标号呢?

    标签的使用方法总结

    HTML中ul标签如何去掉点?HTML无序列表的样式实例解析

    Atas ialah kandungan terperinci html5draggable属性是如何做到页面拖动效果的?方法总结在这里!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!