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

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The GitHub Blog
The GitHub Blog
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
腾讯CDC
博客园 - 聂微东
The Cloudflare Blog
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
Last Week in AI
Last Week in AI
B
Blog

博客园 - Skycper

My new blog Nokia Connecting Pop Win Vista Beta2 软件使用手记 ASP.NET中Dangerous Request.Form value错误的解决方法 Google's two new productions 五一回家了 MAC OS X for x86、Windows Vista、Windows XP三系统安装及试用手记 利用xmlhttp实现页面无刷新数据更新技术 - Skycper - 博客园 Google Page Creator II 鬼舞者3(Onimusha 3) Goolge Page Creator foxmail国外邮箱的使用方法 取消WinXP磁盘容量警告的方法 页面上弹出确认删除对话框 Web建设中... asp.net...xml...sqlserver...努力努力... 电话线搞怪... 后悔了?没后悔?后悔了?Who knows... 世事难料
javascript实现类似google拖动效果 - Skycper - 博客园
Skycper · 2006-03-06 · via 博客园 - Skycper

类似google个性化主页的拖动效果,只要用JavaScript就能实现,实现拖动效果无需数据交换时与Ajax无关。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> skycper javascript div</TITLE>
<META NAME="Author" CONTENT="skycper">
<SCRIPT LANGUAGE="JavaScript">
<!--
var activeDiv,activeSpan,beforeDiv;
function active(e){
if(e.tagName=="SPAN"){
if(!activeDiv) return;
activeSpan 
= e;
if(activeDiv.srcElement.parentNode!=e)
before(e.lastChild);
return;
}

activeDiv 
= e.cloneNode(true);
document.body.insertBefore(activeDiv);
with(activeDiv.style){
position
="absolute";
backgroundColor
="yellow";
filter
="alpha(opacity=50)";
left
=event.x-20;
top
=event.y+2;
}

activeDiv.srcElement
=e;
activeDiv.onmousedown
=null;
activeDiv.onmousemove
=null;
}

function releaseDiv(){
if(!activeDiv) return;
document.body.removeChild(activeDiv)
var se = activeDiv.srcElement;
var p = se.parentNode;
activeDiv
=null;
}

function moveDiv(){
if(!activeDiv) return;
with(activeDiv.style){
left
=event.x-20;
top
=event.y+2;
}

}

function before(e){
if(!activeDiv || e.nextSibling==activeDiv)return;
if(e!=activeDiv.srcElement)
if(e.nextSibling&&e.nextSibling.parentNode==e.parentNode&&e.nextSibling!=e.parentNode.lastChild)
e.parentNode.insertBefore(activeDiv.srcElement.parentNode.removeChild(activeDiv.srcElement),e.nextSibling)
else
e.parentNode.insertBefore(activeDiv.srcElement.parentNode.removeChild(activeDiv.srcElement))
}

var aaa=new Array(21);
//-->
</SCRIPT>
</HEAD>

<BODY onmouseup="releaseDiv()" onmousemove="moveDiv()" onselectstart="return false">
<span style="width:30%;height:100%;border:1px solid gray;overflow-y:auto" onmousemove="active(this)">
<SCRIPT>//自动生成假数据
for(var i=0;i<10;i++) document.write("<div style=\"cursor:hand;border:1px solid #CCFFFF;background-color:#99FFFF\" onmousedown=\"active(this)\" onmousemove=\"before(this)\"><span style=\"width:100\">"+aaa.join(i)+"</span></div>")
</SCRIPT>
</span>
<span style="width:30%;height:100%;border:1px solid gray;overflow-y:auto" onmousemove="active(this)">
<SCRIPT>//自动生成假数据
for(var i=97;i<123;i++) document.write("<div style=\"cursor:hand;border:1px solid #CCFFFF;background-color:#FFFFCC\" onmousedown=\"active(this)\" onmousemove=\"before(this)\"><span style=\"width:100\">"+aaa.join(String.fromCharCode(i))+"</span></div>")
</SCRIPT>
</span>
<span style="width:30%;height:100%;border:1px solid gray;overflow-y:auto" onmousemove="active(this)">
<SCRIPT>//自动生成假数据
for(var i=65;i<91;i++) document.write("<div style=\"cursor:hand;border:1px solid #CCFFFF;background-color:#FFCCFF\" onmousedown=\"active(this)\" onmousemove=\"before(this)\"><span style=\"width:100\">"+aaa.join(String.fromCharCode(i))+"</span></div>")
</SCRIPT>
</span>

</BODY>
</HTML>