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 相关文章推荐
奇妙的js
Sep 24 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
Jquery日历插件制作简单日历
Oct 28 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
AngularJS教程之简单应用程序示例
Aug 16 Javascript
AngularJS中$http服务常用的应用及参数
Aug 22 Javascript
JavaScript使用Ajax上传文件的示例代码
Aug 10 Javascript
vue项目总结之文件夹结构配置详解
Dec 13 Javascript
基于vue展开收起动画的示例代码
Jul 05 Javascript
js实现购物车商品数量加减
Sep 21 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
用PHP产生动态的影像图
2006/10/09 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
Structs界面控制层技术
2013/10/11 面试题
细节决定成败演讲稿
2014/05/12 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
共青团员自我评价范文
2014/09/14 职场文书
物业接待员岗位职责
2015/04/15 职场文书
个人向公司借款协议书
2016/03/19 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
MySQL实现配置主从复制项目实践
2022/03/31 MySQL