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 解疑
Nov 11 Javascript
JavaScript 上万关键字瞬间匹配实现代码
Jul 07 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
详解微信小程序 wx.uploadFile 的编码坑
Jan 23 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
Apr 27 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
Dec 09 Javascript
JS数据类型STRING使用实例解析
Dec 18 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
js实现翻牌小游戏
Jul 31 Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
jQuery语法总结和注意事项小结
2012/11/11 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
js实现一个简易计算器
2020/03/30 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
python实现网页自动签到功能
2019/01/21 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
python 遍历pd.Series的index和value
2019/11/26 Python
Python的logging模块基本用法
2020/12/24 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
党员志愿者活动总结
2014/06/26 职场文书
学校消防安全责任书
2014/07/23 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
2015年小学语文工作总结
2015/05/25 职场文书