基于jQuery拖拽事件的封装
更新时间:2020年11月29日 09:50:19 作者:Spicy boy
这篇文章主要为大家详细介绍了基于jQuery拖拽事件的封装,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了基于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 mobile库检测url绝对地址和相对地址的方法
这篇文章主要介绍了使用jQuery mobile库监测绝对地址和相对地址的方法,分别是isAbsoluteUrl()和isRelativeUrl()方法的使用,需要的朋友可以参考下2015-12-12jQuery插件开发的两种方法及$.fn.extend的详解
jQuery插件开发分为两种:1 类级别、2 对象级别,下面为大家详细介绍下2014-01-01
最新评论