简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

页面元素可拖拽放置的实现原理

来源:易贤网   阅读:894 次  日期:2015-04-22 11:25:44

温馨提示:易贤网小编为您整理了“页面元素可拖拽放置的实现原理”,方便广大网友查阅!

基本上msn、microsoft Live 和GOOGLE个性主页 元素可拖动并放置的的实现原理就是对DOM的操作再加上JAVASCRIPT拖动元素。实现起来实际上并不难,但是要做到很美观并符合用户习惯就需要一些时间思考了。

以下代码实现了上述功能,虽然很简单,但是基本上说明了原理。实现更高级的功能当然还需要改进。

<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<html>

<head>

<title>DropLayer2</title>

<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">

<meta name="CODE_LANGUAGE" Content="C#">

<meta name="vs_defaultClientScript" content="JavaScript">

<meta name="vs_targetSchema" content="">

<style type="text/css">

div

{

border-right: lightgrey thin solid;

border-top: lightgrey thin solid;

font-weight: bold;

z-index: 2;

text-transform: capitalize;

border-left: lightgrey thin solid;

color: white;

border-bottom: lightgrey thin solid;

background-color: dimgray;

}

</style>

</head>

<body>

<div id="parentDiv" class="parentCss" style="width:100">

<div class="itemCss" onmouseover="InsertDiv(this)">one 1</div>

<div class="itemCss" onmouseover="InsertDiv(this)">two 2</div>

<div class="itemCss" onmouseover="InsertDiv(this)">three 3</div>

<div class="itemCss" onmouseover="InsertDiv(this)">four 4</div>

<div class="itemCss" onmouseover="InsertDiv(this)">five 5</div>

<div class="itemCss" onmouseover="InsertDiv(this)">six 6</div>

<div class="itemCss" onmouseover="InsertDiv(this)">seven 7</div>

<div class="itemCss" onmouseover="InsertDiv(this)">eight 8</div>

<div class="itemCss" onmouseover="InsertDiv(this)">nine 9</div>

<div class="itemCss" onmouseover="InsertDiv(this)">ten 10</div>

</div>

<script language="javascript">

<!--

var obj,obj2; //引发事件对象

var rootNode; //控制对象根节点

var IsDrag=false; //是否抓起

var NullDiv; //空临时层

var x,y; //鼠标与控件的相对坐标

window.onload = Prepare; //窗体加载时委托到Prepare

function Prepare()

{

//生成临时层,并设置其属性

NullDiv = document.createElement("div");

//获得控制对象的根节点元素

rootNode = document.getElementById("parentDiv");

document.onmousemove=MoveIt; //当鼠标在文档上移动时事件委托到MoveIt

document.onmousedown=Drag; //当鼠标按下时事件委托到Drag

document.onmouseup=Release; //当鼠标释放台起时事件委托到Release

}

function Drag()

{

obj = event.srcElement;

x=0;//event.offsetX;

y=0;//event.offsetY;

obj.style.position='absolute';

obj.style.posTop=event.y-y;

obj.style.posLeft=event.x-x;

IsDrag=true;

}

function MoveIt()

{

//window.status = event.x+"|"+event.y+"|"+IsDrag+"|"+x+"|"+y;

if(IsDrag)

{

obj.style.posTop=event.y-y;

obj.style.posLeft=event.x-x;

}

}

function Release()

{

IsDrag=false;

NullDiv.style.display='none';

obj.style.position='';

rootNode.insertBefore(obj,obj2);

}

function InsertDiv(o)

{

if(IsDrag)

{

obj2=o;

NullDiv.style.display='';

NullDiv.style.height='18';

NullDiv.style.width='100';

rootNode.insertBefore(NullDiv,obj2);

}

}

//-->

</script>

</body>

</html>

更多信息请查看IT技术专栏

更多信息请查看脚本栏目
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:利用js获取服务器时间的两个简单方法
下一篇:javascript表单之间的数据传递
易贤网手机网站地址:页面元素可拖拽放置的实现原理
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!