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插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
Apr 14 jQuery
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 jQuery
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
jQuery中使用validate插件校验表单功能
May 24 jQuery
jQuery zTree如何改变指定节点文本样式
Oct 16 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
咖啡与水的关系
2021/03/03 冲泡冲煮
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python中列表和元组的区别
2017/12/18 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
Python实现扫码工具的示例代码
2020/10/09 Python
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
小学安全教育材料
2014/02/17 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
2014年司机工作总结
2014/11/21 职场文书
小学生思想品德评语
2014/12/31 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
办公室岗位职责范本
2015/04/11 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
葬礼主持词
2015/07/02 职场文书
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript