惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
Scott Helme
Scott Helme
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security
I
Intezer
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
V2EX - 技术
V2EX - 技术
Google Online Security Blog
Google Online Security Blog
L
Lohrmann on Cybersecurity
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
LINUX DO - 热门话题
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Latest news
Latest news
B
Blog
F
Full Disclosure
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
L
LangChain Blog
GbyAI
GbyAI
Last Week in AI
Last Week in AI
S
Security Affairs
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
Security Latest
Security Latest
Vercel News
Vercel News
Y
Y Combinator Blog
G
GRAHAM CLULEY
S
Securelist
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
雷峰网
雷峰网

博客园 - 逍遥游

验证数字的正则表达式集 .NET实现RSS格式文件 - 逍遥游 - 博客园 SQL SERVER 2005 通过链接服务器 访问 ORACLE 9i 的快速设定方法 [转]asp.net页面缓存技术 - 逍遥游 - 博客园 Oracle常用Script [整理]如何在 JavaScript 中实现拖放 [转]Spring笔记 [转]web项目经理手册-项目经理需要铭记在心的话 [原]学习Struts+Spring+hibernate笔记 [转]Request.UrlReferrer详解 [转]hibernate产生自动增长的主键 JSP学习相关链接 C#中如何动态运行代码 .net 资源网站收集 一个很COOL的图片验证码程序[含源码] 转 关于XMLHTTP无刷新数据获取和发送 (转) .NET中获取客户端HTML代码 使用Hibernate、Struts的一些错误总结 [转]简单好用的ajax进度条(xmlhttp),实现的是真正的进度
[转]鼠标拖动层的javascript脚本
逍遥游 · 2007-09-13 · via 博客园 - 逍遥游

方法一:
      代码的基本思想是:把要拖动的控件(可以是table,div,input等任何html标签)看成是元素(element),然后这些元素需要有一个空间让他们可以拖动,我把这个称作容器(container),把在容器里面鼠标的拖动距离加到元素的style.left和style.top那里,那么元素的位置就发生改变,这样就实现了拖动的效果。
        代码的使用方法,就像下面的示例一样,首先要指定一个container,我这里是把body作为container,所以给body一个属性dragType="container",然后在这个container的内部指定一个或者多个你要移动的元素,我这里移动的是一个table,因此,给table加一个属性dragType="element",注意element一定要是container的子节点。最后,需要一个动作来让开启这个拖动效果,等于一个开关的作用,这里我需要页面加载的时候就可以让鼠标拖动,因此我把enableDragElements()函数放在了body的onload事件里面,这样就可以了,运行页面,就可以用鼠标拖动了。

/**********************************************************************************
//文件说明

 文件名:DragLayerBuilder.js
 描述:使页面上的元素能够让鼠标拖动
 作者:bingo.chuan
 最后修改日期:2006年11月24日
 示例:
 <body id="body" onload="enableDragElements()" dragType="container">
    <table id="table1" border="1" cellpadding="0" cellspacing="0" dragType="element">
        <tr>
            <td colspan="3">标题1
            </td>
        </tr>
        <tr>
            <td>aa:
            </td>
            <td>
                <input id="Text1" type="text" />
            </td>
            <td>label1
            </td>
        </tr>
        <tr>
            <td>bb:
            </td>
            <td>
                <input id="Text2" type="text" />
            </td>
            <td>label2
            </td>
        </tr>
    </table>
</body>

*********************************************************************************
*/

//attribute:属性

//当前存放移动元素的容器
var container = null;

//当前正在移动的元素
var draggingElement = null;

//存放拖拉过程的点位置
var oldLeft = 0;
var oldTop = 0;

//是否要开启透明效果
var enableOpacity = true;

/*********************************************************************************/
//public : 对外开放的接口
function enableDragElements()
{
    
for(var i=0;i<document.all.length;i++)
    
{
        
if(document.all[i].dragType && document.all[i].dragType == "container")
        
{
            container 
= document.all[i];
            container.style.height 
= "100%";
            container.onmousedown 
= doContainerMouseDown;
            container.onmouseup 
= doContainerMouseUp;
            container.onmousemove 
= doContainerMouseMove;
        }

        
if(document.all[i].dragType && document.all[i].dragType == "element")
        
{
            document.all[i].style.position 
= "absolute";
            document.all[i].style.left 
= document.all[i].style.left ? document.all[i].style.left:0;
            document.all[i].style.top 
= document.all[i].style.top ? document.all[i].style.top:0;
        }

    }

    
    
}


/*********************************************************************************/
//private : 内部方法
function doContainerMouseDown()
{
    draggingElement 
= event.srcElement;
    
if(draggingElement == null)
    
{
        
return;
    }

    
else
    
{
        oldLeft 
= event.x;
        oldTop 
= event.y;
        
while( draggingElement && (!draggingElement.dragType || draggingElement.dragType != "element"))
        
{
            draggingElement 
= draggingElement.parentElement;
        }

        container 
= draggingElement;
        
while( draggingElement && (!container.dragType || container.dragType != "container"))
        
{
            container 
= container.parentElement;
        }

    }

}


function doContainerMouseMove()
{
    
if(draggingElement && draggingElement.dragType && draggingElement.dragType == "element")
    
{
        
if(draggingElement !=null && enableOpacity)
        
{      
            draggingElement.style.filter 
= "Alpha(opacity=30)";
        }

         
var left = parseInt(draggingElement.style.left.replace("px",""));
         
var top = parseInt(draggingElement.style.top.replace("px",""));
         
         draggingElement.style.left 
= left + event.x - oldLeft;
         draggingElement.style.top 
= top + event.y - oldTop;
         oldLeft 
= event.x;
         oldTop 
= event.y;
    }

}


function doContainerMouseUp()
{
    
if(draggingElement !=null && enableOpacity)
    
{      
        draggingElement.style.filter 
= "Alpha(opacity=100)";
    }

    draggingElement 
= null;
}


方法二:

<script language="JavaScript1.2">
//-- 控制层删除start of script -->
function ssdel(){
if (event)
{
lObj = event.srcElement ;

while (lObj && lObj.tagName != "DIV") lObj = lObj.parentElement ;
}
var id=lObj.id
document.getElementById(id).removeNode(true);
//document.getElementById(id).outerHTML="";//这样也可以;
}
//-- 控制层删除End of script -->
</script>
<script>
//-- 控制层移动start of script -->
var Obj=''
var index=10000;//z-index;
document.onmouseup=MUp
document.onmousemove=MMove

function MDown(Object){
Obj=Object.id
document.all(Obj).setCapture()
pX=event.x-document.all(Obj).style.pixelLeft;
pY=event.y-document.all(Obj).style.pixelTop;
}

function MMove(){
if(Obj!=''){
    document.all(Obj).style.left=event.x-pX;
    document.all(Obj).style.top=event.y-pY;
    document.all("lblX").innerText = event.y-pX;
    document.all("lblY").innerText= event.y-pY;
}
}

function MUp(){
if(Obj!=''){
document.all(Obj).releaseCapture();
Obj='';
}
}
//-- 控制层移动end of script -->
//获得焦点;
function getFocus(obj)
{
if(obj.style.zIndex!=index)
{
index = index + 2;
var idx = index;
obj.style.zIndex=idx;
//obj.nextSibling.style.zIndex=idx-1;
}
}
</script>

<div id='cc1' class='Cccc' style='position:absolute;left:100px;top:200px;;FILTER: alpha(opacity=80);z-index:-1;' onmousedown='getFocus(this)'>
<table border=0><td style='cursor:move;' width='95%' onmousedown=MDown(cc1)>111111111</td><td style='cursor:hand;' onclick='ssdel()' width='5%'>×</td></tr><tr><td style='height:150px;padding:5px;' colspan='2'>

<div style='padding:5px;float:right;'>111</div></td></tr></table>
</div>