JavaScript拖动层Div代码


Posted in Javascript onMarch 01, 2017

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

JavaScript拖动层Div代码

代码如下:

<!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 相关文章推荐
jQuery ui 1.7更新小结
Aug 15 Javascript
jquery remove方法应用详解
Nov 22 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
jQuery 取值、赋值的基本方法整理
Mar 31 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
Mar 07 Javascript
想用好React的你必须要知道的一些事情
Jul 24 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
Dec 15 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
解决vue打包项目后刷新404的问题
Mar 06 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
Jun 11 Javascript
vue组件间通信解析
Mar 01 #Javascript
性能优化之代码优化页面加载速度
Mar 01 #Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
Mar 01 #Javascript
Javascript仿京东放大镜的效果
Mar 01 #Javascript
Ajax实现不刷新取最新商品
Mar 01 #Javascript
Angular1.x复杂指令实例详解
Mar 01 #Javascript
JS中使用 after 伪类清除浮动实例
Mar 01 #Javascript
You might like
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
python协程用法实例分析
2015/06/04 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
python 实现简易的记事本
2020/11/30 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
优秀党支部事迹材料
2014/01/14 职场文书
运动会广播稿200字
2014/01/15 职场文书
消防器材管理制度
2014/01/28 职场文书
运动会入场词50字
2014/02/20 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
介绍信的格式
2015/01/30 职场文书
珍爱生命主题班会
2015/08/13 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL