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 相关文章推荐
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
js模拟select下拉菜单控件的代码
May 08 Javascript
js监听键盘事件示例代码
Jul 26 Javascript
js实现弹窗插件功能实例代码分享
Dec 12 Javascript
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
js调用后台、后台调用前台等方法总结
Apr 17 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
解析如何利用iframe标签以及js制作时钟
Dec 08 Javascript
微信小程序 页面传值详解
Mar 10 Javascript
使用webpack3.0配置webpack-dev-server教程
May 29 Javascript
Vue实现浏览器打印功能的代码
Apr 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
列表内容的选择
2006/06/30 Javascript
(function(){})()的用法与优点
2007/03/11 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
详解react-refetch的使用小例子
2019/02/15 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
Python笔记之facade模式
2019/11/20 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
销售自荐信
2013/10/22 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
汇源肾宝广告词
2014/03/20 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
天河观后感
2015/06/11 职场文书
换届选举主持词
2015/07/03 职场文书
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
SpringBoot整合Minio文件存储
2022/04/03 Java/Android