这篇文章主要介绍了jQuery实现的鼠标拖动浮层功能,可实现拖动div等任何标签的效果,涉及jQuery事件响应及页面元素属性动态操作相关实现,需要的朋友可以参考下

本文实例讲述了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">
    <div id="moveBar"></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.lovean.com/code/HtmlJsRun测试上述代码,可获得如下运行效果:

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery拖拽特效与总结》、《jQuery常用插件及用法总结》、《jquery中Ajax用法总结》、《jQuery表格(table)操作汇总》、《jQuery扩展总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》

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

最新资讯
2020胡润品牌榜:贵州茅台居首位 天猫排名第2美团跃居第7

2020胡润品牌榜:贵州茅

200强中国品牌价值总和9.2万亿元,比去年增加两成。
新冠病毒为什么会变异

新冠病毒为什么会变异

专家称,病毒遗传物质侵入细胞,疯狂复制中出现的错误便是
我们为什么会做梦

我们为什么会做梦

梦是如何产生的?梦的功能又是什么?梦是睡眠中真实的思维
富士康关联公司新增被执行人信息 执行标的100万元

富士康关联公司新增被

中国执行信息公开网显示,百佳泰信息技术(北京)有限公司新
SpaceX完成今年首次星链卫星发射,入轨卫星总数超过1000颗

SpaceX完成今年首次星

据国外媒体报道,当地时间周三,美国太空探索技术公司Spac
聋哑人默读文字,会像我们一样脑子里有个声音吗?

聋哑人默读文字,会像我

很多人都曾以为,自己闭上双眼就能感受到盲人的世界。然
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,