基于jQuery拖拽事件的封装


Posted in jQuery onNovember 29, 2020

本文实例为大家分享了基于jQuery封装的拖拽事件,供大家参考,具体内容如下

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="jquery-3.4.1.min.js"></script>
  <script src="Drag.js"></script>
  <title>Document</title>
  <style>
    *{
      padding: 0;
      margin: 0;
    }
    .box{
      height: 200px;
      width: 200px;
      background-color: red;
      position: absolute;
      /* 让文字无法被选中 */
      user-select:none;
    }
  </style>
</head>
<body>
  <div class="box"></div>box</div>
  <script>
    $('.box').Drag();//直接调用Drag()方法就可以了
  </script>
</body>
</html>

封装的jQuery拖拽事件:

;(function($) {
  $.fn.extend({
    Drag(){
      //把this存起来,始终指向操作的元素
      _this = this;
      this.on('mousedown',function (e) {
        //盒子距离document的距离
        var positionDiv = $(this).offset();
        //鼠标点击box距离box左边的距离
        var distenceX = e.pageX - positionDiv.left;
        //鼠标点击box距离box上边的距离
        var distenceY = e.pageY - positionDiv.top;
        $(document).mousemove(function(e) {
          //盒子的x轴
          var x = e.pageX - distenceX;
          //盒子的y轴
          var y = e.pageY - distenceY;
          //如果盒子的x轴小于了0就让他等于0(盒子的左边界值)
          if (x < 0) {
            x = 0;
          } 
          //盒子右边界值
          if(x > $(document).width() - _this.outerWidth()){
            x = $(document).width() - _this.outerWidth();
          }
          //盒子的上边界值
          if (y < 0) {
            y = 0;
          }
          //盒子的下边界值
          if(y > $(document).height() - _this.outerHeight()){
            y = $(document).height() - _this.outerHeight();
          }
          //给盒子的上下边距赋值
          $(_this).css({
            'left': x,
            'top': y
          });
        });
        //在页面中当鼠标抬起的时候,就关闭盒子移动事件
        $(document).mouseup(function() {
          $(document).off('mousemove');
        });
      })
      //把this返回回去继续使用jqurey的链式调用
      return this
    }
  })
})(jQuery)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
jQuery回调方法使用示例
Jun 26 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
jQuery插件jsonview展示json数据
May 26 jQuery
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
jquery实现聊天机器人
Feb 08 jQuery
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
html中两种获取标签内的值的方法
Jun 16 jQuery
jQuery实现动态操作table行
Nov 23 #jQuery
jQuery-App输入框实现实时搜索
Nov 19 #jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 #jQuery
JavaScript枚举选择jquery插件代码实例
Nov 17 #jQuery
如何在vue 中引入使用jquery
Nov 10 #jQuery
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
Nov 09 #jQuery
jQuery实现移动端扭蛋机抽奖
Nov 08 #jQuery
You might like
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
python的迭代器与生成器实例详解
2014/07/16 Python
python版本的读写锁操作方法
2016/04/25 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
对Python3 序列解包详解
2019/02/16 Python
python多进程并行代码实例
2019/09/30 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
拖鞋店创业计划书
2014/01/15 职场文书
关于打架的检讨书
2014/01/17 职场文书
计算机专业自荐信
2014/05/24 职场文书
综治工作心得体会
2014/09/11 职场文书
领导参观欢迎词
2015/01/26 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
小学少先队活动总结
2015/05/08 职场文书
民事起诉状范文
2015/05/19 职场文书
2015教师节通讯稿
2015/07/20 职场文书
工作简报格式范文
2015/07/21 职场文书