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.Jwin.js 基于jquery的弹出层插件代码
May 23 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
Dec 12 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
微信小程序 参数传递实例代码
Mar 20 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
微信小程序实现锚点定位楼层跳跃的实例
May 18 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
js数据类型检测总结
Aug 05 Javascript
vue实现点击追加选中样式效果
Nov 01 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
php 的反射详解及示例代码
2016/08/25 PHP
php微信开发之谷歌测距
2018/06/14 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
js+jquery常用知识点汇总
2015/03/03 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
python抽象基类用法实例分析
2015/06/04 Python
django允许外部访问的实例讲解
2018/05/14 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
pandas DataFrame运算的实现
2020/06/14 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书