有趣的javascript程序:抓不到我!
<script language="JavaScript">
<!--
/* Elusive image script by Paul Anderson, copyright 2001 CNET Builder.com.
May be freely used with attribution. Not for resale.
你可以用以下的原始碼在同一個頁面裡頭放入多張不同的圖片。將這裡的三個 unique_id 替換成
某個你自己取的唯一的名字(不過可別用 swtLoc 這個名字,它在這個程式裡面是個保留字),
然後把四組寬度與高度作適當的調整。
<layer name="unique_id" width=100 height=200>
<div id="unique_id" style="position:relative;width:100;height:200;top:0;left:0;">
<a href="#" onmouseOver="swtRun(@#unique_id@#)" onmouseout="swtDiv=null">
<img src="img.gif" width=100 height=200 border=0></a>
</div></layer><ilayer name="swtLoc" width=100 height=200></ilayer>
*/
var oldX=0,oldY=0,newX,newY,xDir,yDir,swtDiv
function swtFlee(arg) {
ev=arg?arg:event;
newX=ev.pageX?(isNaN(ev.pageX)?0:ev.pageX):ev.clientX;
newY=ev.pageY?(isNaN(ev.pageY)?0:ev.pageY):ev.clientY;
xDir=5*(newX-oldX);
yDir=5*(newY-oldY);
oldX=newX;
oldY=newY;
maxW=document.width?document.width:document.body.clientWidth;
maxH=document.height?document.height:document.body.clientHeight;
if (swtDiv) {
if (document.layers) swtDiv.style=swtDiv;
divW=swtDiv.clip?swtDiv.clip.width:parseInt(swtDiv.style.width);
divH=swtDiv.clip?swtDiv.clip.height:parseInt(swtDiv.style.height);
swtDiv.style.left=parseInt(swtDiv.style.left)+xDir;
swtDiv.style.top=parseInt(swtDiv.style.top)+yDir;
if (newX <= divW) swtDiv.style.left=parseInt(swtDiv.style.left)+divW;
if (newX >= maxW-divW) swtDiv.style.left=parseInt(swtDiv.style.left)-divW;
if (newY <= divH) swtDiv.style.top=parseInt(swtDiv.style.top)+divH;
if (newY >= maxH-divH) swtDiv.style.top=parseInt(swtDiv.style.top)-divH;
}
}
function swtRun(divID) {
swtDiv=document.getElementById?document.getElementById(divID):document.all?document.all[divID]:document.layers?document.layers[divID]:null;
}
function initFlee() {
if (document.layers) {
document.captureEvents(Event.MOUSEMOVE);
for (i=0;i<document.layers.length-1;i++) {
if (document.layers[i+1].name.substr(0,6)=="swtLoc") {
document.layers[i].moveTo(document.layers[i+1].pageX,document.layers[i+1].pageY);
}
}
}
document.onmousemove=swtFlee;
}
window.onload=initFlee;
//-->
</script>
然后把你想要拿来跟客人玩躲猫猫的图片用下面这段 HTML 打点一下就成了:
<layer name="unique_id" width=100 height=200>
<div id="unique_id" style="position:relative;width:100;height:200;top:0;left:0;">
<a href="#" onmouseOver="swtRun(@#unique_id@#)" onmouseout="swtDiv=null">
<img src="img.gif" width=100 height=200 border=0></a>
</div></layer><ilayer name="swtLoc" width=100 height=200></ilayer>
把上面出现的三个unique_id替换成某个你自己取的唯一的名字(不过可别用swtLoc这个名字,它在这个程序里面是个保留字),然后把四组宽度与高度作适当的调整。你可以用上面的原始码在同一个页面里头放入多张不同的图片。感谢这段程序!这些图片全都会立刻变得超级害羞,看到鼠标光标靠近就立刻躲到旁边去。而且就像 Java 版本那样,还真有些白痴家伙会乐此不疲地连续几个钟头追着这些图片跑哩!
下一篇:动态JS程序二例 >>
相关文章:
- · 非常好的东西,有助于学习css虑镜,转msdn [2]
- · 经常看见有人问能不能实现这个效果:下拉选框中输入文字。想实现的进来看看
- · 非常好的东西,有助于学习css虑镜,转msdn [3]
- · 做一个酷酷的在线编辑器(-)
- · 做一个酷酷的在线编辑器(二)
- · 在《INPUT TYPE=“FILE”》里单击打开的浏览文件时,可以只显示JPG和GIF文件吗?
- · 怎么在html中include 一个文件内容!
- · How to Build Tables Dynamically(二)
- · How to Build Tables Dynamically(-)
- · 关于Window.open的参数小结(参书改编)
- · 试试看这个,可能和你的要求不一样,但是可是实现一样的功能
- · string.substring();
- · 如何使用MsgBox?
- · js中,有什么函数可以令数字每千位就加一“,”,还有什么函数可以保留小数后两位
- · 重写表格--[js源码]你如果用的上,这就是好东西.
- · -3
- · -2
- · 下拉连动的例子,自己看看,修改一下。
- · 这是newuser.asp(注册)
- · 编写跨浏览器的DHTML应用程序。大家可以去www.dicp.ac.cn看看这个对ie和ns都适用的下拉菜单
- · Iframe的妙用!
- · 让表格闪起来的技巧
- · Label 标识的妙用(转)
- · 通过地址栏传递参数.通过url传递参数(原创 是我给一个网友解决问题时写的)
- · 利用JS在页面上动态生成直线
- · 一般的复选框一定要按在复选框上才能被选中,这个复选框点击相应的文字就可以被选中
- · 利用JS动态改变图片大小
- · event对象详解
- · 关于AutoComplete(文本框的自动填充)
- · 在页面上定义元件热键的方法
- · window.external的使用
- · 利用HTC技术限制多行输入框的内容的长度(转载)
- · “画中画”效果---谈Iframe标记的使用
- · COOKIE欺骗 (转贴)
- · 当页面正在被下载时在页面上显示loading.....的例子
- · 使用javascript改进你的框架 (摘)
- · 这是我在网上摘入的,贴上来与大家一起学习学习。 在javascript中应用Object(1)
- · 在javascript中应用Object (2)
