JavaScript拖动层Div代码
作者:632855323gjp 发布时间:2024-04-16 09:46:48
标签:js,拖动
效果图:(灰色区域可拖动)
代码如下:
<!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>
来源:http://www.qdfuns.com/notes/41982/f95a9c5f1097adc9c56fd1b1959857c7.html


猜你喜欢
- table单元格新增行并编辑,具体内容如下需要bootstrap.min.css —— [ Bootstrap ]jquery-1.8.2.
- 检查图片是否损坏日常工作中,时常会需要用到图片,有时候图片在下载、解压过程中会损坏,而如果一张一张点击来检查就太不Cool了,因此我想大家都
- 最近把MySQL升级到了5.6版本,无意中在任务管理器发现MySQL内存占用达到400+M,这是怎么回事呢?以前的版本可没有遇到过这种情况啊
- 一、弱网简介弱网看字面意思就是网络比较弱,我们通称为信号差,网速慢。1、弱网的影响在地铁、隧道、电梯和车库等场景下使用APP ,网络会出现延
- # -*- coding: utf-8 -*- import numpy as npimport matplotlib.pyplot as
- 在win7 64位,Anaconda安装的Python3.6.1下安装的TensorFlow与Keras,Keras的backend为Ten
- 介绍海象运算符,即 := ,在 PEP 572 中被提出,并在 Python3.8 版本中发布。海象运算符的英文原名叫Assignment
- 使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉。对于访问速度
- 前言在论坛中回答了一个问题,导入csv 数据,并对导入的数据增加一个新的列date datetime。要求在10s内完成,200w行数据的导
- 有时候会遇到和上面类似的表单字段。我们可以给每个字段限制输入长度,当达到输入长度时自动切换焦点,以增强表单的易用性 <form id=
- 条条框框的报表页面枯燥乏味?不妨给页面加点“新意”!前阵子,在看天气预报的时候,发现免费天气预报的调用代码,瞬间想到可以给我开发的报表“润润
- 问题你要通过网络连接发送和接受连续数据的大型数组,并尽量减少数据的复制操作。解决方案下面的函数利用 memoryviews 来发送和接受大数
- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE function [dbo]
- 本文实例讲述了Python元组 tuple的概念与基本操作。分享给大家供大家参考,具体如下:元组 tuple元组 tuple的定义元组的创建
- demo: <div v-for="item in temps" :key="
- 一、下载MySQL msi版本下载地址:https://dev.mysql.com/downloads/mysql/二、安装直接右击点击安装
- Pycharm默认可以识别py脚本中的SQL语句,本身很不错,但当SQL拼接时就显示的代码特别难看,找了好久,终于知道怎么关闭SQL识别功能
- Python版本 实现了比之前的xxftp更多更完善的功能1、继续支持多用户2、继续支持虚拟目录3、增加支持用户根目录以及映射虚拟目录的权限
- flask多进程会引起重复加载,解决方法:把耗资源的加载挪到函数里面或者类里面,就不会重复加载资源了。测试发现,不是flask引起的,是多进
- 微信小程序实现一个简单的select下拉框,供大家参考,具体内容如下用的是transform过渡,没用动画看看效果废话不多说,直接上代码wx