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返回定位插件详解
May 15 jQuery
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
jQuery回调方法使用示例
Jun 26 jQuery
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 jQuery
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
jQuery实现简单评论区功能
Oct 26 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
简化php模板页面中分页代码的解析
2009/02/06 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
Js 中debug方式
2010/02/07 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
js 获取html5的data属性实现方法
2017/07/28 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
js实现简易计算器功能
2019/10/18 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
基于hashlib模块--加密(详解)
2017/06/21 Python
Python读写Excel表格的方法
2021/03/02 Python
行政助理的职责
2013/11/14 职场文书
出纳工作检讨书
2014/10/18 职场文书
出差报告怎么写
2014/11/06 职场文书
学习保证书
2015/01/17 职场文书
承诺函格式模板
2015/01/21 职场文书
质量整改通知单
2015/04/21 职场文书
趣味运动会广播稿
2015/08/19 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python