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 相关文章推荐
JavaScript 数组的 uniq 方法
Jan 23 Javascript
JS 页面自动加载函数(兼容多浏览器)
May 18 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
js正则表达exec与match的区别说明
Jan 29 Javascript
jQuery判断checkbox是否选中的3种方法
Aug 12 Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 Javascript
js实现5秒倒计时重新发送短信功能
Feb 05 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 Javascript
监控微信小程序中的慢HTTP请求过程详解
Jul 05 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
微信小程序日历效果
2018/12/29 Javascript
微信公众号平台接口开发 获取access_token过程解析
2019/08/14 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python 专题一 函数的基础知识
2017/03/16 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
Python3 log10()函数简单用法
2019/02/19 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
css3的transition属性详解
2014/12/15 HTML / CSS
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
买房子个人收入证明
2014/01/16 职场文书
2014年党总支工作总结
2014/12/18 职场文书
小学班主任评语
2014/12/29 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python