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 中令人困惑的变量赋值
Aug 13 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
Oct 21 Javascript
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
Aug 05 Javascript
深入分析javascript中的错误处理机制
Jul 17 Javascript
AngularJS入门教程之MVC架构实例分析
Nov 01 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
Vue异步组件使用详解
Apr 08 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 Javascript
AngularJS中重新加载当前路由页面的方法
Mar 09 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
JavaScript中break、continue和return的用法区别实例分析
Mar 02 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
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
jquery中动态效果小结
2010/12/16 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
JS实现div居中示例
2014/04/17 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
python生成IP段的方法
2015/07/07 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
大课间体育活动方案
2014/03/12 职场文书
品牌宣传方案
2014/03/21 职场文书
高考标语大全
2014/06/05 职场文书
社区活动策划方案
2014/08/21 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
2015年党员承诺书
2015/01/21 职场文书
神龙架导游词
2015/02/11 职场文书
答谢酒会主持词
2015/07/02 职场文书
三八节祝酒词
2015/08/11 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
Redis可视化客户端小结
2021/06/10 Redis
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
SQL Server 中的事务介绍
2022/05/20 SQL Server