求助一个javascript的全局变量和局部变量问题

cszg_zjy 2009-12-28 03:17:07
下面的代码是用来实现一个div左右浮动效果,当我把var x = 2;写成全局变量的时候(move()函数外),功能可以实现;当我把var x = 2;写成局部变量的时候(move()函数里),功能就不能实现了,div浮动到右边的边界的时候就会静止,左边亦然,百思不得其解,还望高手指点。


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>float</title>
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
left:100px;
top:50px;
width:150px;
height:150px;
z-index:1;
background-color: #0000FF;
}
-->
</style>
<script language="javascript">

var x=2;
function move(){

if(document.getElementById("apDiv1").style.pixelLeft<0 ||
document.getElementById("apDiv1").style.pixelLeft > document.body.offsetWidth - 200 ){
x *= (-1);
}

document.getElementById("apDiv1").style.pixelLeft += x;

window.setTimeout("move()", 10);
}
</script>
</head>

<body onLoad="move()">

<div id="apDiv1"></div>
</body>
</html>


...全文
37 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
freedom421 2009-12-28
  • 打赏
  • 举报
回复
同上

局部变量在MOVE每次调用就会重新赋值。。当然达不到全局变量的效果
cszg_zjy 2009-12-28
  • 打赏
  • 举报
回复
想明白了,晕了一下午,被这小问题搞的郁闷,谢了~结了
Click_Me 2009-12-28
  • 打赏
  • 举报
回复

全局变量 整个函数 都共享这一个变量x
局部变量 每次调用move函数 都重新给赋值为x = 2当然就不对了
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-28 03:17
社区公告
暂无公告