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在光标位置插入内容的实现代码
Jun 18 Javascript
JavaScript 参数中的数组展开 [译]
Sep 21 Javascript
javascript SpiderMonkey中的函数序列化如何进行
Dec 05 Javascript
jquery 中ajax执行的优先级
Jun 22 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
JavaScript判断浏览器及其版本信息
Jan 20 Javascript
ES6 javascript中class类的get与set用法实例分析
Oct 30 Javascript
Vue精简版风格概述
Jan 30 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
Oct 26 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
Nov 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
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
php实现的生成排列算法示例
2019/07/25 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
javascript Object与Function使用
2010/01/11 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
js获取class的所有元素
2013/03/28 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
经典婚礼主持开场白
2014/03/13 职场文书
小学德育工作经验交流材料
2014/05/22 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
2014年政教处工作总结
2014/12/20 职场文书
学习nginx基础知识
2021/09/04 Servers
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
python装饰器代码解析
2022/03/23 Python