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 相关文章推荐
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
Mar 28 Javascript
使用VS开发 Node.js指南
Jan 06 Javascript
在Node.js应用中使用Redis的方法简介
Jun 24 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
javascript中JSON.parse()与eval()解析json的区别
May 19 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
Vue计算属性的使用
Aug 04 Javascript
Angularjs中date过滤器失效的问题及解决方法
Jul 06 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 jQuery
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
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
javascript之Partial Application学习
2013/01/10 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
pytest中文文档之编写断言
2019/09/12 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
Python换行与不换行的输出实例
2020/02/19 Python
Python的logging模块基本用法
2020/12/24 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
大学生职业生涯规划方案
2014/01/03 职场文书
文秘自荐信
2014/06/28 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
政府四风问题整改措施
2014/10/04 职场文书
撤诉书怎么写
2015/05/19 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
python tkinter实现定时关机
2021/04/21 Python
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js