js实现文字跟随鼠标移动而移动的方法
本文实例讲述了js实现文字跟随鼠标移动而移动的方法。分享给大家供大家参考。具体分析如下:
这是一款非常简单的鼠标特性代码,在网页中移动鼠标的时候,后面跟着一串文字跟随者鼠标移动
<html>
<head>
<styletype="text/css">
.spanstyle{
COLOR:000000;FONT-SIZE:10pt;POSITION:absolute;TOP:-50px;VISIBILITY:visible
}
</style>
<script>
varx,y
varstep=18//这里是相邻两个字之间的间隔
varflag=0
varmessage="毛票票www.nhooo.com欢迎你的光临!"//这里放需要显示的文字
message=message.split("")//将字符串分解为数组
varxpos=newArray()//创建数组,以记录每个位置的x坐标
for(i=0;i<=message.length-1;i++){//给每个元素先赋一个初始值
xpos[i]=-50
}
varypos=newArray()//创建数组,以记录每个位置的y坐标
for(i=0;i<=message.length-1;i++){
ypos[i]=-200
}
functionmovehandler(e){//处理鼠标移动事件
x=(document.layers)?e.pageX:document.body.scrollLeft+event.clientX //根据浏览器的不同,记录鼠标的水平位置
y=(document.layers)?e.pageY:document.body.scrollTop+event.clientY //记录鼠标的垂直位置
flag=1//鼠标位置已经改变,需要重新计算
}
functionmakesnake(){
if(flag==1&&document.all){//如果是IE
for(i=message.length-1;i>=1;i--){//处理坐标队列
xpos[i]=xpos[i-1]+step//将每一座标数据前移一格,并加上字符间距
ypos[i]=ypos[i-1]
}
xpos[0]=x+step//将新数据写进坐标数据队列尾部
ypos[0]=y
for(i=0;i<message.length-1;i++){
varthisspan=eval("span"+(i)+".style")//生成当前操作对象spanx.style
thisspan.posLeft=xpos[i]
thisspan.posTop=ypos[i]
}
}
elseif(flag==1&&document.layers){//如果是NS
for(i=message.length-1;i>=1;i--){//处理坐标队列
xpos[i]=xpos[i-1]+step//将每一座标数据前移一格,并加上字符间距
ypos[i]=ypos[i-1]
}
xpos[0]=x+step//将新数据写进坐标数据队列尾部
ypos[0]=y
for(i=0;i<message.length-1;i++){//根据数组的数据改变每一个字所在的层的坐标
varthisspan=eval("document.span"+i)//生成当前操作对象document.spanx
thisspan.left=xpos[i]
thisspan.top=ypos[i]
}
}
vartimer=setTimeout("makesnake()",30)//30毫秒后再次根据情况调整各字符位置
}
</script>
</head>
<bodybgcolor="ffffff"onload="makesnake()">
<script>
<!--BeginningofJavaScript-
//这里为每个字生成一个span作为容器
for(i=0;i<=message.length-1;i++){
document.write("<spanid='span"+i+"'class='spanstyle'>")
document.write(message[i])
document.write("</span>")
}
//规定鼠标移动事件的处理过程
if(document.layers){
document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove=movehandler;
//-EndofJavaScript--->
</script>
</body>
<br><b>这种效果是不是很酷啊?</b></br>
</html>
希望本文所述对大家的javascript程序设计有所帮助。