easyui Draggable组件实现拖动效果


Posted in Javascript onAugust 19, 2015

easyui做为一个封装了JQusey的UI插件,其实还是蛮好用的,至少省了像我这种渣渣很多时间。

Draggable的加载方式有两种:

1,通过class加载,如下:

<div id="box" class="easyui-draggable"></div>

通过JS加载,如下:

$('#box').draggable();

以上两点需要注意的是不管是'easyui-draggable',还是draggable 都是固定的,他们都是通过调用easyui已经写好的函数,来实现jQuery效果的。

Draggable的属性:

revert    当值为true时,拖动停止时返回起始位置,可以到处拖。

revert : boolean,

axis

限制拖动的方向,水平'h'?垂直'v'?这个和 revert组合起来比较有意思,设置拖动方向为

垂直的话就跟微信,微博刷新消息一样。

axis : String/'v'/'h',

proxy

克隆,就是拖动的时候要拖动的对象不变,然后在鼠标上复制一个要拖动的对象,当然也

可以是其他的,可以触发function。

proxy : null/String/function,

然后还有很多其他的属性,觉得并不是特别有趣。

cursor : move/String ,     //指定拖动时候指针的CSS样式 变得美美哒
deltaX : null/number,
deltaY : null/number,    //被拖动的元素对应于当前光标位置的x,y  就是给被   拖动元素与光标一个距离
handle : null/selector    //开始拖动的句柄   手柄!只能用手柄拖动!对的!
disabled : boolean        //设置为true是,不能拖动当先绑定的元素
edge : number             //可以在其中拖动的容器的宽度  从容器的上下左右往里算 ,就像一个矩形里面包着一个矩形 ,然后里面那只有鼠标放在里面矩形的时候元素才能被拖动   

例子:

$('#box').draggable({
  revert : true,
  cursor: 'text',
  handle : '#pox',
  disabled : false,
  edge : 50,
  axis :'v',
  proxy : 'clone',
  deltaX: 10,
  deltaY : 10,
  proxy: function(source){
    console.log('呵呵哒!');
  }
});

Draggable的事件:

onBeforeDrag  拖动之前触发,返回false将取消拖动

onBeforeDrag : function (e){
  alert('拖动之前触发');
  return false;
}

onStartDrag 拖动时触发

onStartDrag : function(e){
  alert('拖动时触发');
}

onDrag 拖动过程中触发,不能拖动事返回false

onDrag : function(e){
  alert('拖动过程触发');
}

onDrag 停止拖动时触发

onStopDrag : function (e){
  alert('在拖动停止时触发');
}

 Draggable 方法列表

options 返回属性对象

console.log($('#box').draggable('options'));

    proxy 如果代理属性被设置则返回该拖动代理元素

console.log($('#box').draggable('proxy'));

enable 可以被拖动

$('#box').draggable('enable');

disable 禁止被拖动

$('#box').draggable('disable');

我们来看个简单的例子

<pre class="brush:java;">html>
 
 
 
  <meta charset="UTF-8">
  <title>Basic Draggable - jQuery EasyUI Demo</title>
  <link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.6/themes/metro/easyui.css">
  <link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.6/themes/icon.css">
  <link rel="stylesheet" type="text/css" href="jquery-easyui-1.3.6/demo/demo.css">
  <script type="text/javascript" src="jquery-easyui-1.3.6/jquery.min.js"></script>
  <script type="text/javascript" src="jquery-easyui-1.3.6/jquery.easyui.min.js"></script>
 
 
 
  <h2>Basic Draggable</h2>
  <p>Move the boxes below by clicking on it with mouse.</p>
  <div id="dd" class="easyui-draggable" data-options="handle:'#title'" style="width:100px;height:100px;">
    <div id="title" style="background:#ccc;width:100px;height:100px;">容器里面的内容</div>
  </div>
  <script>
    $(function () {
 
      $("#title").draggable({
        proxy: function (a) {
          var a = $('<div class="proxy_div">你拖我干啥</div>');
          a.appendTo('body');
          return a;
        },
        cursor: 'pointer',
        edge: '6'
      });
    });
  </script>
 
 
</pre><br><br>

以上差不多就是Easyui 1.2.5  Draggable的全部属性,事件、方法和示例了, 如果有什么不对的话,欢迎评论,一起讨论和赐教。

Javascript 相关文章推荐
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
Apr 09 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
Jquery通过Ajax访问XML数据的小例子
Nov 18 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
JavaScript实现的联动菜单特效示例
Jul 08 Javascript
使用CamanJS在Web页面上处理图像的技巧
Aug 18 #Javascript
JS实现下拉菜单赋值到文本框的方法
Aug 18 #Javascript
JS实现可调整倒计时间代码分享
Aug 18 #Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 #Javascript
js实现带有介绍的Select列表菜单实例
Aug 18 #Javascript
jQuery垂直多级导航菜单代码分享
Aug 18 #Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
Aug 18 #Javascript
You might like
php 过滤危险html代码
2009/06/29 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
webpack打包js的方法
2018/03/12 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
python访问系统环境变量的方法
2015/04/29 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
详解Python进程间通信之命名管道
2017/08/28 Python
Python快速排序算法实例分析
2017/11/29 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
python代码编写计算器小程序
2020/03/30 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
参观监狱心得体会
2014/01/02 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
班主任2015新年寄语
2014/12/08 职场文书
会计岗位职责
2015/02/03 职场文书
财务部岗位职责
2015/02/03 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
pandas进行数据输入和输出的方法详解
2022/03/23 Python