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 ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
jQuery:unbind方法的使用详解
Aug 14 jQuery
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
jQuery length 和 size()区别总结
Apr 26 jQuery
jQuery zTree插件快速实现目录树
Aug 16 jQuery
JQuery样式与属性设置方法分析
Dec 07 jQuery
jQuery实现简单三级联动效果
Sep 05 jQuery
JS+JQuery实现无缝连接轮播图
Dec 30 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 set_time_limit(0)长连接的实现分析
2010/03/02 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
vuex实现购物车功能
2020/06/28 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python实现对adb命令封装
2020/03/06 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
小学教师办公室制度
2014/02/03 职场文书
校园安全标语
2014/06/07 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书