JS实现网页Div层Clone拖拽效果


Posted in Javascript onSeptember 26, 2015

本文实例讲述了JS实现网页Div层Clone拖拽效果。分享给大家供大家参考。具体如下:

这是一个层拖动,网页上的拖拽Clone效果实例,两个层可在鼠标的拖动下,任意改变位置,智能判断层级,也就是智能判断自身是否处于最高层,最高处的层是不会被其它层遮挡的。

运行效果截图如下:

JS实现网页Div层Clone拖拽效果

在线演示地址如下:

<!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>拖拽--Clone</title>
<style type="text/css"> 
body,div{margin:0;padding:0;}
body{background:#3e3e3e;}
div{position:absolute;width:100px;height:100px;cursor:move;border:1px solid #888;background:#000;}
#drag1{top:100px;left:100px;}
#drag2{top:100px;left:300px;}
#temp{opacity:0.3;filter:alpha(opacity=30);}
</style>
<script type="text/javascript"> 
var zIndex = 1;
window.onload = function ()
{
 var oDrag1 = document.getElementById("drag1");
 var oDrag2 = document.getElementById("drag2");
 drag(oDrag1);
 drag(oDrag2);
};
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 = document.createElement("div");
  oTemp["id"] = "temp";
  oTemp.style.left = this.currentStyle ? this.currentStyle["left"] : getComputedStyle(this, null)["left"];
  oTemp.style.top = this.currentStyle ? this.currentStyle["top"] : getComputedStyle(this, null)["top"];
  oTemp.style.zIndex = zIndex++;
  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.left = iL + "px";
   oTemp.style.top = iT + "px";
   return false;
  };
  document.onmouseup = function ()
  {
   document.onmousemove = null;
   document.onmouseup = null;
   oDrag.style.left = oTemp.style.left;
   oDrag.style.top = oTemp.style.top;
   oDrag.style.zIndex = oTemp.style.zIndex;
   document.body.removeChild(oTemp);
   oDrag.releaseCapture && oDrag.releaseCapture()
  };
  this.setCapture && this.setCapture();  
  return false
 } 
}
</script>
</head>
<body>
<div id="drag1"></div>
<div id="drag2"></div>
</body>
</html>

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

Javascript 相关文章推荐
javascript在子页面中函数无法调试问题解决方法
Jan 17 Javascript
jQuery控制TR显示隐藏的几种方法
Jun 18 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
Angular ng-repeat 对象和数组遍历实例
Sep 14 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
bootstrap警告框示例代码分享
May 17 Javascript
javaScript之split与join的区别(详解)
Nov 08 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
ES6基础之数组和对象的拓展实例详解
Aug 22 Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 Javascript
React自定义hook的方法
Jun 25 Javascript
jQuery超简单选项卡完整实例
Sep 26 #Javascript
angularjs学习笔记之简单介绍
Sep 26 #Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 #Javascript
JS实现仿QQ效果的三级竖向菜单
Sep 25 #Javascript
微信支付如何实现内置浏览器的H5页面支付
Sep 25 #Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 #Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
Sep 24 #Javascript
You might like
简单的页面缓冲技术
2006/10/09 PHP
php桌面中心(四) 数据显示
2007/03/11 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
Python字典操作简明总结
2015/04/13 Python
Python的语言类型(详解)
2017/06/24 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
Python虚拟环境venv用法详解
2020/05/25 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
小学生关于梦想的演讲稿
2014/08/22 职场文书
住房抵押登记委托书
2014/09/27 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
学校运动会开幕词
2016/03/03 职场文书