酷!网页内容位置任意调

技术与开发

我是一名“网虫”,喜欢没事都泡在网络上。最近我在一家网站上逛时,无意中拖动了网页内容,可以想怎么放就怎么放。这个新鲜的功能我以前没有碰到过,我很感兴趣,不知道这个功能是怎么设计的?

6-f09-1.jpg
6-f09-2.jpg

要实现这个功能很简单,我们仅仅依靠Javascript事件处理机制就可以将其完成:在Javascript中编写一个方法用来捕捉用户移动的数据,即图片的横坐标值和纵坐标值,当图片停止移动时,将当前的坐标值赋予图片。这样图片就定位在新的位置。Javascript事件处理机制可以判断或控制页面所有元素,通过程序来控制相关页面元素的显示或移位。

小知识:Javascript是基于对象(object-based)的语言。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理的程序或函数,我们称之为事件处理程序(Event Handler)。

第一步:打开 Macromedia Dreamwea ver 8后,执行“文件→新建→基本页”命令, 然后单击“创建”按钮即可创建一个HTML页面。

第二步:在新建的HTML页面中,添加Javascript代码(完整代码请到http://www.cpcw.com/bzsoft下载),其中关键代码如下所示:

<script language="javascript">

<!--

var ie=document.all;

var nn6=document.getElementById&&!document.all;

var isdrag=false;

var y,x;

var oDragObj;

function moveMouse(e) {

if (isdrag) {

oDragObj.style.top = (nn6? nTY+e.clientY-y:nTY+event.clientY-y)+"px";

oDragObj.style.left= (nn6? nTX+e.clientX-x:nTX+event.clientX-x)+"px";

return false;

}

}

function initDrag(e) {

var oDragHandle = nn6? e.target:event.srcElement;

var topElement = "HTML";

while (oDragHandle.tagName!= topElement && oDragHandle.className!= "dragAble") {

oDragHandle = nn6? oDragHandle.parentNode:oDragHandle.parentElement;

}

if (oDragHandle.className=="dragAble") {

isdrag = true;

oDragObj = oDragHandle;

nTY=parseInt(oDragObj.style.top+0);

y=nn6? e.clientY:event.clientY;

nTX = parseInt(oDragObj.style.left+0);

x = nn6 ? e.clientX : event.clientX;

document.onmousemove=moveMouse;

return false;

}

}

document.onmousedown=initDrag;

document.onmouseup=new Function("isdrag=false");

//-->

</script>

</head>

<body>

<img src="12.jpg" class="dragAble" width="240" heigh="210" />

<img src="18.jpg" class="dragAble" width="240" heigh="210" />

<img src="16.jpg" class="dragAble" width="240" heigh="210" />

<br />

<div

style="border: 1px solid #ff6d00; width: 240px; padding: 5px 0; background-image: url(11.jpg); height: 210px;"class="dragAble"></div>

</body>

</html>

第三步:按键盘上的F12键,就可以运行HTML页面并获得效果图了。

总结

通过本例的学习,读者朋友可以更好地理解Javascript事件处理机制的实际运用,在工作中应用Javascript事件处理机制,例如鼠标的单击或双击事件、载入或卸载文件的事件等,可以使网页元素功能更强大,交互动作更优美。结合Ajax可以实现日程表、许愿墙等流行的网络应用效果。