`
cn_arthurs
  • 浏览: 322203 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

能够自由拖动布局区域的网页

阅读更多
<html>
<head>
<title>能够自由拖动布局区域的网页</title>
<style type="text/css">
<!--
body{
	font-size:12px;
	font-family:Arial, Helvetica, sans-serif;
	margin:0px; padding:0px;
	/*background-color:#ffffd5;*/
	background-color:#e6ffda;
}
.dragTable{
	font-size:12px;
	/*border:1px solid #003a82;*/
	border:1px solid #206100;
	margin-bottom:5px;
	width:100%;
	/*background-color:#cfe5ff;*/
	background-color:#c9ffaf;
}
td{
	padding:3px 2px 3px 2px;
	vertical-align:top;
}
.dragTR{
	cursor:move;
	/*color:#FFFFFF;
	background-color:#0073ff;*/
	color:#ffff00;
	background-color:#3cb500;
	height:20px;
	font-weight:bold;
	font-size:14px;
	font-family:Arial, Helvetica, sans-serif;
}
#parentTable{
	border-collapse:collapse;
}
-->
</style>
<script language="javascript" defer="defer">
var Drag={
	dragged:false,
	ao:null,
	tdiv:null,
	dragStart:function(){
		Drag.ao=event.srcElement;
		if((Drag.ao.tagName=="TD")||(Drag.ao.tagName=="TR")){
			Drag.ao=Drag.ao.offsetParent;
			Drag.ao.style.zIndex=100;
		 }else
		 	return;
		Drag.dragged=true;
		Drag.tdiv=document.createElement("div");
		Drag.tdiv.innerHTML=Drag.ao.outerHTML;
		Drag.ao.style.border="1px dashed red";
		Drag.tdiv.style.display="block";
		Drag.tdiv.style.position="absolute";
		Drag.tdiv.style.filter="alpha(opacity=70)";
		Drag.tdiv.style.cursor="move";
		Drag.tdiv.style.border="1px solid #000000";
		Drag.tdiv.style.width=Drag.ao.offsetWidth;
		Drag.tdiv.style.height=Drag.ao.offsetHeight;
		Drag.tdiv.style.top=Drag.getInfo(Drag.ao).top;
		Drag.tdiv.style.left=Drag.getInfo(Drag.ao).left;
		document.body.appendChild(Drag.tdiv);
		Drag.lastX=event.clientX;
		Drag.lastY=event.clientY;
		Drag.lastLeft=Drag.tdiv.style.left;
		Drag.lastTop=Drag.tdiv.style.top;
	},
	draging:function(){//判断MOUSE的位置
		if(!Drag.dragged||Drag.ao==null)return;
		var tX=event.clientX;
		var tY=event.clientY;
		Drag.tdiv.style.left=parseInt(Drag.lastLeft)+tX-Drag.lastX;
		Drag.tdiv.style.top=parseInt(Drag.lastTop)+tY-Drag.lastY;
		for(var i=0;i<parentTable.cells.length;i++){
			var parentCell=Drag.getInfo(parentTable.cells[i]);
			if(tX>=parentCell.left&&tX<=parentCell.right&&tY>=parentCell.top&&tY<=parentCell.bottom){
				var subTables=parentTable.cells[i].getElementsByTagName("table");
				if(subTables.length==0){
					if(tX>=parentCell.left&&tX<=parentCell.right&&tY>=parentCell.top&&tY<=parentCell.bottom){
						parentTable.cells[i].appendChild(Drag.ao);
					}
					break;
				}
				for(var j=0;j<subTables.length;j++){
					var subTable=Drag.getInfo(subTables[j]);
					if(tX>=subTable.left&&tX<=subTable.right&&tY>=subTable.top&&tY<=subTable.bottom){
						parentTable.cells[i].insertBefore(Drag.ao,subTables[j]);
						break;
					}else{
						parentTable.cells[i].appendChild(Drag.ao);
					}
				}
			}
		}
	},
	dragEnd:function(){
		if(!Drag.dragged)
			return;
		Drag.dragged=false;
		Drag.mm=Drag.repos(150,15);
		Drag.ao.style.borderWidth="0px";
		//Drag.ao.style.border="1px solid #003a82";
		Drag.ao.style.border="1px solid #206100";
		Drag.tdiv.style.borderWidth="0px";
		Drag.ao.style.zIndex=1;
	},
	getInfo:function(o){//取得坐标
		var to=new Object();
		to.left=to.right=to.top=to.bottom=0;
		var twidth=o.offsetWidth;
		var theight=o.offsetHeight;
		while(o!=document.body){
			to.left+=o.offsetLeft;
			to.top+=o.offsetTop;
			o=o.offsetParent;
		}
		to.right=to.left+twidth;
		to.bottom=to.top+theight;
		return to;
	},
	repos:function(aa,ab){
		var f=Drag.tdiv.filters.alpha.opacity;
		var tl=parseInt(Drag.getInfo(Drag.tdiv).left);
		var tt=parseInt(Drag.getInfo(Drag.tdiv).top);
		var kl=(tl-Drag.getInfo(Drag.ao).left)/ab;
		var kt=(tt-Drag.getInfo(Drag.ao).top)/ab;
		var kf=f/ab;
		return setInterval(function(){
			if(ab<1){
				clearInterval(Drag.mm);
				Drag.tdiv.removeNode(true);
				Drag.ao=null;
				return;
			}
			ab--;
			tl-=kl;
			tt-=kt;
			f-=kf;
			Drag.tdiv.style.left=parseInt(tl)+"px";
			Drag.tdiv.style.top=parseInt(tt)+"px";
			Drag.tdiv.filters.alpha.opacity=f;
		}
		,aa/ab)
	},
	inint:function(){
		for(var i=0;i<parentTable.cells.length;i++){
			var subTables=parentTable.cells[i].getElementsByTagName("table");
			for(var j=0;j<subTables.length;j++){
				if(subTables[j].className!="dragTable")
					break;
				subTables[j].rows[0].className="dragTR";
				subTables[j].rows[0].attachEvent("onmousedown",Drag.dragStart);
			}
		}
		document.onmousemove=Drag.draging;
		document.onmouseup=Drag.dragEnd;
	}
}
Drag.inint();
</script>
   </head>
<body>
<table cellspacing="4" width="100%" id="parentTable">
<tr>
	<td width="25%" valgin="top">
		<table class="dragTable" cellspacing="0">
			<tr><td>CSS</td></tr>
			<tr><td>CSS(Cascading Style Sheet),中文译为层叠样式表,是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。CSS是1996年由W3C审核通过,并且推荐使用的。</td><tr>
		</table>
		<table class="dragTable" cellspacing="0">
			<tr><td>AJAX</td></tr>
			<tr><td>Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是目前很新的一项网络应用技术。</td><tr>
		</table>
	</td>
	<td width="25%">
		<table class="dragTable" cellspacing="0">
			<tr><td>Javascript</td></tr>
			<tr><td>Javascript是一种基于对象的脚本语言,使用它可以开发Internet客户端的应用程序。Javascript在HTML页面中以语句的方式出现,并且执行相应的操作。</td><tr>
		</table>
	</td>
	<td width="25%">
		<table class="dragTable" cellspacing="0">
			<tr><td>XML</td></tr>
			<tr><td>XML是eXtensible Markup Language的缩写,即可扩展标记语言。它是一种可以用来创建自定义标记的语言,由万维网协会(W3C)创建,用来克服HTML的局限。</td><tr>
		</table>
		<table class="dragTable" cellspacing="0">
			<tr><td>网页变幻</td></tr>
			<tr><td>保持页面的HTML不变,通过分别调用三个外部CSS文件,实现三个完全不同的页面效果,蓝色经典、清明上河图、交河古城。</td><tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>

 以上代码摘自《精通CSS+DIV》一书第15章

分享到:
评论

相关推荐

    《精通CSS+DIV网页样式与布局》光盘源码

     15.3 Ajax实例:能够自由拖动布局区域的网页  第4部分 综合案例篇  第16章 我的博客   16.1 分析构架   16.2 模块拆分   16.3 整体调整   第17章 小型工作室网站   17.1 分析构架   17.2 ...

    精通CSS.DIV.网页样式与布局 源码

     15.3 Ajax实例:能够自由拖动布局区域的网页  第4部分 综合案例篇  第16章 我的博客   16.1 分析构架   16.2 模块拆分   16.3 整体调整   第17章 小型工作室网站   17.1 分析构架  ...

    精通CSS+DIV网页样式与布局Part1

     15.3 Ajax实例:能够自由拖动布局区域的网页  第4部分 综合案例篇  第16章 我的博客   16.1 分析构架   16.2 模块拆分   16.3 整体调整   第17章 小型工作室网站   17.1 分析构架   17.2 ...

    精通CSS+DIV网页样式与布局视频教材

    15.3 Ajax实例:能够自由拖动布局区域的网页 第4部分 综合案例篇 第16章 我的博客 16.1 分析构架 16.1.1 设计分析 16.1.2 排版构架 16.2 模块拆分 16.2.1 导航与Banner 16.2.2 左侧列表 ...

    精通CSS.DIV网页样式与布局视频01

     15.3 Ajax实例:能够自由拖动布局区域的网页  第4部分 综合案例篇  第16章 我的博客   16.1 分析构架   16.2 模块拆分   16.3 整体调整   第17章 小型工作室网站   17.1 分析构架   17.2 ...

    精通CSS+DIV网页样式与布局

     15.3 Ajax实例:能够自由拖动布局区域的网页  第4部分 综合案例篇  第16章 我的博客   16.1 分析构架   16.2 模块拆分   16.3 整体调整   第17章 小型工作室网站   17.1 分析构架   17.2 ...

    vue中实现拖动调整左右两侧div的宽度的示例代码

    还是老话,因为我不是专业的前端工程师,只是兼职写一些简单的前端,所以这个功能的实现得益于以下博客,《vue 拖动调整左右两侧div的宽度》、《vuejs中拖动改变元素宽度实现宽度自适应大小》,而我只是针对于他们...

    Android编程实现支持拖动改变位置的图片中叠加文字功能示例

    本文实例讲述了Android编程实现支持拖动改变位置的图片中叠加...2.可拖动改变图片中文本位置(文字不会超出图片区域)。 3.点击“生成图片”按钮之后,生成一张带有文字的图片文件。 代码不多,直接全部贴上了: Activ

    精通JavaScript+jQuery Part1

     15.3 Ajax实例:能够自由拖动布局区域的网页  第4部分 综合案例篇  第16章 我的博客   16.1 分析构架   16.2 模块拆分   16.3 整体调整   第17章 小型工作室网站   17.1 分析构架   17.2 ...

    栅栏桌面Fences1.0简体中文版.rar

    可以自由选择顶部、底部、左右布局图,定制标签显示,双击桌面隐藏/显示桌面图标。"栅栏"是用来将你的桌面图标分类成不同的组。这个软件的作用就是帮助您明朗的管理您的桌面.基本用法:拖动桌面图标放入栅栏区域,使...

    排版设计印刷工具 Serif Affinity Publisher 1.8.4.648 x64 中文多语版.zip

    从杂志,书籍,小册子,海报,报告和文具到其他创作,这个令人难以置信的流畅,直观的应用程序使您能够结合您的图像,图形和文本,使美丽的布局准备出版。目前虽然主流的排版工具可能是 Adobe InDesign 或者专业排版...

    Qt-Advanced-Docking-System:Qt的高级扩展坞系统

    您可以停靠在主窗口的每个边界上,也可以停靠在每个停靠区域中-因此您几乎可以自由停靠在任何地方。 停靠在浮动窗户内 主窗口和浮动窗口之间没有区别。 支持停靠在浮动窗口中。 分组拖动 拖动停靠栏的标题栏时,将...

    Excel甘特图模板

    说明: 1.只有任务号、任务、负责人这几列和浅绿色的单元格可以自由修改,...A:选中想要打印的单元格,选择Ribbon工具条的页面布局 &gt; 打印区域 &gt; 设置打印区域,然后在打印预览中调整页边距、缩放比例和页面方向。

    JQuery&CSS;&CSS;+DIV实例大全.rar

    44.jquery漂亮网页布局综合定时器、切换间隔、滚动时间、滚动图片个数等示例 45.jQuery演示Ajax加载并显示图片的相片画廊实例 46.jQuery版Sexy Lightbox 2.3内容修饰框插件下载(支持HTML,flash,图片,视频等) ...

    美容化妆品商城系统 v1.0.zip

    可视化的鼠标拖曳排版,自由插入、拖动和叠放插件,所见即所得,让网站制作如同搭积木般便捷易玩;各种插件、边框、菜单可灵活组合和任意摆放,让您摆脱页面框架的束缚,尽享创意的乐趣;        相关阅读...

    建站之星v2.1最新商业破解版 带1千多套模板

    同时该系统率先在国内采用模块化管理,您想要改变页面布局仅需使用鼠标拖拽相应的模块到指定的页面区域即可,真正做到所见即所得。当然,如果您懂HTML语言,您还可以在建站系统的框架内设计个性化的网站,系统给予了...

    最新建站之星2.1商业破解版 带1千多套模板

    同时该系统率先在国内采用模块化管理,您想要改变页面布局仅需使用鼠标拖拽相应的模块到指定的页面区域即可,真正做到所见即所得。当然,如果您懂HTML语言,您还可以在建站系统的框架内设计个性化的网站,系统给予了...

    滑动解锁 SlideUnlock 1.13

    4.滑动屏幕隐藏或显示导航面板,在软件主界面,通过滑动屏幕上除滑动按钮之外的其他区域,向下或向左能够隐藏滑动导航面板,反方向开启,通过什么步骤隐藏了面板,通过相反操作步骤显示面板,该功能可以开启或关闭。...

    Zoomla!逐浪CMS2 x3.9.6.zip

    29、增加:默认pwa渐进式站点配置参数,即webapp开发支持,现在可以自由的将网页作为app锁定在手机桌面并作为独立线程运行啦。 30、优化:首页引导1/5导航页的样式优化。 31、增加:前端引用pre标签作为代码块时的...

    Altium Designer Beta 19.0.10完整版安装包+安装教程+和谐文件

    解决了IPC Compliant Footprint Wizard中的回归问题,当未选择Full Matrix时,无法更改(或插入)LGA,BGA包布局选项的任何参数。 26459 修复了“属性”面板中的“网络类别”排序,以匹配软件其他区域中使用的网络...

Global site tag (gtag.js) - Google Analytics