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学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
extjs ColumnChart设置不同的颜色实现代码
May 17 Javascript
jquery操作angularjs对象
Jun 26 Javascript
JS函数的几种定义方式分析
Dec 17 Javascript
js实现点击每个li节点,都弹出其文本值及修改
Dec 15 Javascript
javascript读取文本节点方法小结
Dec 15 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
详解Angular2学习笔记之Html属性绑定
Jan 03 Javascript
angularjs性能优化的方法
Sep 05 Javascript
Vue和React组件之间的传值方式详解
Jan 31 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
vue中使用极验验证码的方法(附demo)
Dec 04 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
聊天室php&amp;mysql(三)
2006/10/09 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
php-fpm中max_children的配置
2019/03/15 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
JS实现列表页面隔行变色效果
2017/03/25 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python中的super()方法使用简介
2015/08/14 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
建筑专业自我鉴定
2013/10/22 职场文书
服务口号大全
2014/06/11 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书