jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】


Posted in jQuery onDecember 29, 2018

本文实例讲述了jQuery实现的鼠标拖动浮层功能。分享给大家供大家参考,具体如下:

拖动浮层(div等任何标签)

之前项目做到一个弹出层需要一个拖动功能,上网上查了资料,发现很多方法,但是感觉都很繁琐,有的甚至没看懂。看了几个方法后发现基本上都是使用mousedown、mousemove和mouseup这三个函数来写的,然后就自己写了个移动div的方法。

先用mousedown来判断是否要开启移动,然后通过mousemove来获得移动的距离,实现移动;最后通过mouseup事件来判断移动结束了。

完整代码实例:

<html>
<head>
  <meta charset="utf-8"></meta>
  <title>Drag Div</title>
  <script src="http://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>
</head>
<body>
  <div id="moveDiv" style="width:300px;height:300px;background-color:red;position:absolute;">
    <div id="moveBar" style="background-color:green;height:30px;cursor: move;"></div>
  </div>
  <script type="text/javascript">
    var dragJob=false;
    $(document).on("mousedown", '#moveBar', function (e) {
      dragJob = true;
    });
    document.onmousemove = function (e) {
    if (dragJob) {
      var e = e || window.event;
      var height = $(document.body).height();
      var width = $(window).width();
      var widthJob = $("#moveDiv").width();
      var heightJob = $("#moveDiv").height();
      var left = e.clientX - widthJob / 2;
      var top = e.clientY - 18 + $(document).scrollTop();
      if (top >= 0 && top < height - heightJob) {
        $("#moveDiv").css("top", top);
      }
      if (left >= 0 && left < width - widthJob) {
        $("#moveDiv").css("left", left);
      }
      return false;
    }
  };
  $(document).mouseup(function (e) {
    dragJob = false;
  });
  </script>
</body>
</html>

这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可获得如下运行效果:

jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jQuery 禁止表单用户名、密码自动填充功能
Oct 30 jQuery
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
Mar 28 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
基于jquery实现九宫格拼图小游戏
Nov 30 jQuery
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
jquery层次选择器的介绍
Jan 18 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
jquery实现Ajax请求的几种常见方式总结
May 28 jQuery
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 #jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 #jQuery
jQuery实现的自定义轮播图功能详解
Dec 28 #jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 #jQuery
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 #jQuery
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 #jQuery
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 #jQuery
You might like
discuz安全提问算法
2007/06/06 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python中pass语句用法实例分析
2015/04/30 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
python热力图实现简单方法
2021/01/29 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
PHP笔试题
2012/02/22 面试题
翻译学院毕业生自荐书
2014/02/02 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
高中班主任寄语
2019/06/21 职场文书