背景:近期项目中需要实现弹出浮层增加数据,并且浮动层可以拖拽

解决步骤:1、浮动层实现  2、拖拽实现

多方查资料,基本实现功能,现做demo,便于以后使用

先上图片大体展示实现效果:

再上代码,展示我的实现思路:

DragAndDrop.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>浮动层拖拽</title>
<script src="DragDiv.js" type="text/javascript" language="javascript"
charset="UTF-8"></script>
<link href="UploadFile.css" rel="stylesheet" type="text/css" /> <script type="text/javascript">
function openFuCeng() {
document.getElementById("moveFile").style.display = "block";
document.getElementById("shadow2").style.display = "block"; }
function closeDiv() {
document.getElementById("moveFile").style.display = "none";
document.getElementById("shadow2").style.display = "none"; }
</script>
</head>
<body>
<div id="dragAndDrop">
<!-- 浮层开始‹ -->
<div id="moveFile" class="moveFile">
<div class="toolbarHeight" onmousedown="down('moveFile')">
<label>鼠标拖拽可移动</label>
</div>
<div style="width:100%;height:85px; ">
<p>浮动层</p>
</div>
<div class="fucengDiv" >
<input class="toobarBtn" type="button" value="关闭" onclick="javascript:closeDiv()"/>
</div>
</div>
<div id="shadow2"></div>
<!-- 浮层结束 -->
<div></div>
<input type="button" value="点击展示浮层" onclick="javascript:openFuCeng()" style="margin-top: 20px;">
<p>底层页面</p>
</div>
</body>
</html>

DragDiv.js

/**
* 浮层拖拽
*/
var px = 0;
var py = 0;
var begin = false;
//是否要开启透明效果
var enableOpacity = false; // 默认不允许
var myDragDiv;
/**
* 浮层拖拽
* @param divid 待拖拽对象id
*/
function down(divid) {
myDragDiv=document.getElementById(divid);//获得被拖拽对象
begin = true;
myDragDiv.style.cursor = "hand";
event.srcElement.setCapture();
px = myDragDiv.style.pixelLeft - event.x;//pixelLeft
py = myDragDiv.style.pixelTop - event.y;
} document.onmousemove=function() {
if (myDragDiv != null && typeof (myDragDiv) != "undefined") {
if (begin&&(px + event.x)>10) {
if (enableOpacity) { myDragDiv.style.filter = "Alpha(opacity=30)"; } // 滤镜
myDragDiv.style.pixelLeft = px + event.x;
myDragDiv.style.pixelTop = py + event.y;
}
}
} document.onmouseup=function() {
if (myDragDiv != null && typeof (myDragDiv) != "undefined") {
begin = false;
if (enableOpacity) { myDragDiv.style.filter = "Alpha(opacity=100)"; } // 滤镜
myDragDiv.style.cursor = "default";
event.srcElement.releaseCapture();
myDragDiv = null;
}
}

UploadFile.css

@CHARSET "UTF-8";
#dragAndDrop{
margin: 0 auto;
width: 300px;
height: 200px;
margin-top:200px;
text-align:center;
background:#98fb98 ;
border: 2px solid black;
}
/*文件整体大小*/
#shadow2{
display: none;
background:white;
opacity:0.2;
filter:alpha(opacity=20);
position:absolute;
left:0px;
top:0px;
width:100%;
height:100%;
z-index:996;/*z-index position display 共同实现层的浮动 */
margin: 0 auto;
}
/*移动浮层*/
.moveFile{
display: none;
width: 150px;
height: 160px;
position: absolute;
z-index:997;
border: 2px solid black;
background:#FFF;
top:50%;
margin-top:-50px;
left:50%;
margin-left:-50px;
}
.toolbarHeight{
height: 25px;
width: 100%;
border-bottom:#b7e3f2 1px solid;
background:#98fb98 ;
}
.toobarBtn{
float: right;
margin-right: 10px;
} .fucengDiv{
width:100%;
height: 30px;
padding-top: 5px;
border-top:#b7e3f2 1px solid;
}

注:拖拽的实现是在网上查资料找到的,做了一些小的改动,大意了忘记留下学习地址了

以上使用到的代码,看着还是比较简单的,但是你理解吗?至少我还是有问题的

问题:

首次拖拽总是不灵活,需要多晃动几次鼠标才有效,为什么呢?待解决

【j2ee】div浮动层拖拽的更多相关文章

  1. js div浮动层拖拽效果代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. jQuery 学习笔记3 点击弹出一个div并允许拖拽移动

    这里我看了下http://qings.blog.51cto.com/4857138/998878/ 的文章,感谢他的分享. 首先我们有一个a标签和一个div,div默认是不显示的,当用户点击时改为显示 ...

  3. 用JavaScript实现div的鼠标拖拽效果

    实现原理鼠标按下时根据onmousemove事件来动态获取鼠标坐标位置以此来更新div的位置,实现的前提时div要有一个定位效果,不然的话是移动不了它的. HTML <div class=&qu ...

  4. div与div之间的拖拽

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 使div弹窗可拖拽指令

    在项目开发过程中,有些情况dialog弹窗,直接使用div模拟弹窗效果,并需要支持div可拖拽. div模拟弹窗效果: (1)在用于存放指令的文件夹内,新建js文件,命名为:drag.js.具体代码如 ...

  6. div/dom元素拖拽缩放插件,纯js实现拖拽缩放,不依赖jQuery~

    产品需求,需要用到对div(dom)进行拖拽缩放操作,看到有好多插件,要么依赖jQuery,要么文件太大. 封装了一个插件,不压缩状态下5KB. html <!DOCTYPE html> ...

  7. DIV 实现可拖拽 功能(留档)

    //可拖拽 功能 $.fn.extend({    //用法:$(element).jqDrag();    //element需要具备定位属性,需要手动调整层叠样式,这里只是修改鼠标拖动效果    ...

  8. DIV浮动层被OCX控件遮蔽解决方案

    在开发中需要在网页中嵌入OCX控件,但是控件嵌入后,总是会出现在网页最顶层,页面中的浮动DIV总是不能正常显示,会被遮蔽掉,那么这里就需要特殊处理一下: OBJECT会遮蔽掉页面内容,但是IFRAME ...

  9. jquery弹出层拖拽

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <met ...

随机推荐

  1. BZOJ 3907: 网格( 组合数 + 高精度 )

    (0,0)->(n,m)方案数为C(n,n+m), 然后减去不合法的方案. 作(n,m)关于y=x+1的对称点(m-1,n+1), 则(0,0)->(m-1,n+1)的任意一条路径都对应( ...

  2. javascript学习(9)——[设计模式]单例

    单例模式,相信大家对此都不陌生,我们主要讲下javascript中几个比较常见的设计模式: (1).普通的单体 (2).具有局部变量的强大单体 (3).惰性单体 (4).分支单体 下面我们就一一进行介 ...

  3. js 几个特殊情况

    alert(033-15);//12,前缀0用在直接量中,表示八进制 alert('033'-15);//18,前缀0用在字符串中,在(隐式)转换将忽略 alert(parseInt('033')-1 ...

  4. Linux的起源、特点和版本号

    前言 最近上陈渝老师的<高级操作系统>,需要在ucore实验平台上完成一个麻雀虽小五脏俱全的OS,本着看过一小半<30天自制操作系统>的自信,以为这不过是小case,怎料被虐得 ...

  5. 转:jQuery事件绑定.on()简要概述及应用

    前几天在看<jquery基础教程>,看到事件委托的时候,关于live()方法讲的不是很详细,就去搜了一下关于live()和delegate()的. 然后在一处看到live()已经被移除了, ...

  6. 3644 - X-Plosives(水题,并差集)

    3644 - X-Plosives A secret service developed a new kind of explosive that attain its volatile proper ...

  7. ThinkPHP - 缓存使用

    用法: 需要使用不同的缓存方式的时候 需要重新初始化,如果不初始化直接调用的话,则会按照系统配置自动初始化.初始化的返回值,可以直接操作缓存: $cache = cache(array('type'= ...

  8. UIViewController XIB/NIB加载过程

    UIViewController中关于nib初始化的函数 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBu ...

  9. dhtmlx使用学习

    Var tabbar=new dhtmlXTabBar("tab","top"); tabbar.setImagePath("./tabbar/cod ...

  10. datetime.datetime.today()生成时间转换成unixtime

    首先要将时间中秒后面的.及其以后的部分去掉,否则时间转换函数 currenttime=str((datetime.datetime.today())).split('.',2)[0] str((dat ...