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面试题 可以提前实现下
Jan 05 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
Mar 10 Javascript
angularjs学习笔记之完整的项目结构
Sep 26 Javascript
jQuery日历插件datepicker用法详解
Mar 03 Javascript
jquery实现图片轮播器
May 23 jQuery
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
Dec 12 Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 Javascript
javascript防抖函数debounce详解
Jun 11 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 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怎样调用MSSQL的存储过程
2006/10/09 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
php绘制一条直线的方法
2015/01/24 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
谈谈如何手动释放Python的内存
2016/12/17 Python
详解python中asyncio模块
2018/03/03 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
PyQt5响应回车事件的方法
2019/06/25 Python
python是怎么被发明的
2020/06/15 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
节能环保演讲稿
2014/08/28 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
党小组鉴定意见
2015/06/02 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
Python经常使用的一些内置函数
2022/04/11 Python