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 构造函数 实例分析
Nov 26 Javascript
javaScript 读取和设置文档元素的样式属性
Apr 14 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
Dec 21 Javascript
javascript unicode与GBK2312(中文)编码转换方法
Nov 14 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
搭建pomelo 开发环境
Jun 24 Javascript
jQuery向后台传入json格式数据的方法
Feb 13 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
vue+element实现批量删除功能的示例
Feb 28 Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 Javascript
原生JS封装vue Tab切换效果
Apr 28 Vue.js
使用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实现快速排序法函数代码
2012/08/27 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
监控 url fragment变化的js代码
2010/04/19 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
python对数组进行反转的方法
2015/05/20 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
Python_LDA实现方法详解
2017/10/25 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
奉献演讲稿范文
2014/05/21 职场文书
基层党员公开承诺书
2014/05/29 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS