基于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-data的三种用法
Apr 18 jQuery
jQuery实现jQuery-form.js实现异步上传文件
Apr 28 jQuery
jquery+css实现侧边导航栏效果
Jun 12 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
9种方法优化jQuery代码详解
Feb 04 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 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
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
快速了解Python中的装饰器
2018/01/11 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
Python如何存储数据到json文件
2020/03/09 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
村捐赠仪式答谢词
2014/01/21 职场文书
森林防火工作方案
2014/02/14 职场文书
人民教师求职自荐信
2014/03/12 职场文书
写得不错的求职信范文
2014/07/11 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
2014年班组工作总结
2014/11/20 职场文书
倡议书作文
2015/01/19 职场文书
郭明义电影观后感
2015/06/08 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
优质服务标语口号
2015/12/26 职场文书
python关于集合的知识案例详解
2021/05/30 Python
Python数据结构之队列详解
2022/03/21 Python
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby