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 相关文章推荐
显示、隐藏密码
Jul 01 Javascript
javascript向flash swf文件传递参数值注意细节
Dec 11 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
加随机数引入脚本不让浏览器读取缓存
Sep 04 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
纯JS代码实现气泡效果
May 04 Javascript
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
详解javascript中的babel到底是什么
Jun 21 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
Sep 25 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 Javascript
Vue的过滤器你真了解吗
Feb 24 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
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
Python读取word文本操作详解
2018/01/22 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
学习和使用python的13个理由
2019/07/30 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
python super()函数的基本使用
2020/09/10 Python
会计电算化专业个人的自我评价
2013/11/24 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
求职自荐信怎么写
2014/03/06 职场文书
经销商会议开幕词
2016/03/04 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
Nginx如何配置根据路径转发详解
2022/07/23 Servers