基于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实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
jQuery列表检索功能实现代码
Jul 17 jQuery
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
jquery 验证用户名是否重复代码实例
May 14 jQuery
jQuery 筛选器简单操作示例
Oct 02 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
jQuery实现的分页插件完整示例
May 26 jQuery
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
jquery实现简单每周轮换的日历
Sep 10 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
基于mysql的论坛(4)
2006/10/09 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
python str字符串转uuid实例
2020/03/03 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
高三政治教学反思
2014/02/06 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
杜甫草堂导游词
2015/02/03 职场文书
责任书格式
2019/04/18 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android