浅谈jQuery拖拽事件封装的实现
Admin 2021-10-13 群英技术资讯 708 次浏览
今天给大家分享的是关于基于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拖拽事件的内容,大家可以关注群英网络其它相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要给大家分享的时候JS等于运算符,很多朋友觉得JS等于运算符很好用,可能会出现滥用的情况,但其实等于运算符使用有些问题是需要了解的,下面我们就来看看。
在计算机安全中,沙箱(Sandbox)是一种用于隔离正在运行程序的安全机制,通常用于执行未经测试或不受信任的程序或代码,它会 为待执行的程序创建一个独立的执行环境,内部程序的执行不会影响到外部程序的运行,下文我们来介绍一个“浏览器世界”的沙箱
request 和 response 对象的具体介绍:Request对象 -request对象表示HTTP请求,包含了请求查询字符串,参数,内容,HTTP头部等属性。常见属性有:req.app:当callback为外部文件时,用req.app访问express的实例req.baseUrl:获取路由当前安装的URL路径req.body/req.cookies:获得「请求主体
reduce是数组原型对象上的一个方法,可以帮助我们操作数组。本文将和大家分享4个关于JavaScript中数组reduce的用法,希望对大家有所帮助
字符串可以包含在单引号、双引号或反引号中。单引号和双引号基本相同。反引号允许我们通过${…}在字符串中嵌入任何表达式。允许字符串换行。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008