JavaScript拖动层Div代码

发布时间 - 2026-01-10 23:21:51    点击率:

效果图:(灰色区域可拖动)

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{ margin:0; padding:0;} .div{ width:100px; height:100px; position:absolute;left:100px; top:100px; background:#ccc;}
</style>
</head>
<body>
 <div class="div">
 </div>
 <script type="text/javascript">
  var div = document.getElementsByTagName('div')[0];
  var zIndex = 6;
  drag(div);
  div.ondblclick = function() {
  alert("ok");
  };
  function drag(oDrag) {
  var disX = dixY = 0;
  oDrag.onmousedown = function(event) {
   var event = event || window.event;
   disX = event.clientX - this.offsetLeft;
   disY = event.clientY - this.offsetTop;
   var oTemp = this.cloneNode(true);
   document.body.appendChild(oTemp);
   document.onmousemove = function(event) {
   var event = event || window.event;
   var iL = event.clientX - disX;
   var iT = event.clientY - disY;
   var maxL = document.documentElement.clientWidth - oDrag.offsetWidth;
   var maxT = document.documentElement.clientHeight - oDrag.offsetHeight;
   iL <= 0 && (iL = 0);
   iT <= 0 && (iT = 0);
   iL >= maxL && (iL = maxL);
   iT >= maxT && (iT = maxT);
   oTemp.style.zIndex = zIndex++;
   oTemp.style.opacity = "0.5";
   oTemp.style.filter = "alpha(opacity=50)";
   oTemp.style.left = iL + "px";
   oTemp.style.top = iT + "px";
   return false;
   };
   document.onmouseup = function() {
   document.onmousemove = null;
   document.onmouseup = null;
   oDrag.style.opacity = oTemp.style.opacity;
   var arr = {
    left: oTemp.offsetLeft,
    top: oTemp.offsetTop
   };
   oDrag.style.zIndex = oTemp.style.zIndex;
   oAnimate(oDrag, arr, 300,
   function() {
    document.body.removeChild(oTemp);
   });
   oDrag.releaseCapture && oDrag.releaseCapture()
   };

   this.setCapture && this.setCapture();
   return false
  }
  }
  function oAnimate(obj, params, time, handler) {
  var node = typeof obj == "string" ? $(obj) : obj;
  var _style = node.currentStyle ? node.currentStyle: window.getComputedStyle(node, null);
  var handleFlag = true;
  for (var p in params) { (function() {
   var n = p;
   if (n == "left" || n == "top") {
    var _old = parseInt(_style[n]);
    var _new = parseInt(params[n]);
    var _length = 0,
    _tt = 10;
    if (!isNaN(_old)) {
    var count = _old;
    var length = _old <= _new ? (_new - _old) : (_old - _new);
    var speed = length / time * _tt;
    var flag = 0;
    var anim = setInterval(function() {
     node.style[n] = count + "px";
     count = _old <= _new ? count + speed: count - speed;
     flag += _tt;
     if (flag >= time) {
     node.style[n] = _new + "px";
     clearInterval(anim);
     if (handleFlag) {
      handler();
      handleFlag = false;
     }
     }
    },
    _tt);
    }

   }
   })();
  }
  }
 </script>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# javascript  # 拖动div  # 拖动  # js  # js实现鼠标拖动功能  # js实现悬浮窗效果(支持拖动)  # javascript html5轻松实现拖动功能  # js实现兼容PC端和移动端滑块拖动选择数字效果  # 基于JavaScript实现拖动滑块效果  # js拖动滑块和点击水波纹效果实例代码  # 无标题文档  # div  # padding  # margin  # px  # height  # width  # css  # content  # Type 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: LinuxShell函数封装方法_脚本复用设计思路【教程】  Python3.6正式版新特性预览  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  新三国志曹操传主线渭水交兵攻略  深入理解Android中的xmlns:tools属性  如何在自有机房高效搭建专业网站?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Java垃圾回收器的方法和原理总结  微信h5制作网站有哪些,免费微信H5页面制作工具?  zabbix利用python脚本发送报警邮件的方法  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何快速搭建自助建站会员专属系统?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  如何快速生成可下载的建站源码工具?  如何快速搭建高效WAP手机网站?  百度浏览器如何管理插件 百度浏览器插件管理方法  如何打造高效商业网站?建站目的决定转化率  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Android实现代码画虚线边框背景效果  Android 常见的图片加载框架详细介绍  教你用AI润色文章,让你的文字表达更专业  详解Android图表 MPAndroidChart折线图  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel如何使用查询构建器?(Query Builder高级用法)  实例解析angularjs的filter过滤器  详解Oracle修改字段类型方法总结  网站制作企业,网站的banner和导航栏是指什么?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  JavaScript中的标签模板是什么_它如何扩展字符串功能  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  如何快速查询网址的建站时间与历史轨迹?  如何在万网开始建站?分步指南解析  在centOS 7安装mysql 5.7的详细教程  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】