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 28 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
js全屏显示显示代码的三种方法
Nov 11 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
使用堆实现Top K算法(JS实现)
Dec 25 Javascript
Javascript原型链的原理详解
Jan 05 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
详解Express笔记之动态渲染HTML(新手入坑)
Dec 13 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 Javascript
vue中keep-alive,include的缓存问题
Nov 26 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
Laravel 5框架学习之表单验证
2015/04/08 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
单位办理社保介绍信
2014/01/10 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
企业贷款委托书格式
2014/09/12 职场文书
出国留学自荐信模板
2015/03/06 职场文书
女儿满月酒致辞
2015/07/29 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书