javascript - 为什么我不能使用第一个代码移动图片?
问题描述
有人看到下面两个代码块之间有什么区别吗?第一个根本不运行,第二个完美运行。为什么会这样?
<title></title>
<style type="text/css">
#stones_image {
/*border: 1px solid red;*/
left: 0;
}
</style>
</head>
<body onload="set_timer()">
<img src="pics/stones.png" id="stones_image">
<script type="text/javascript">
var the_timer, x_position = 0, the_image;
function set_timer() {
the_image=document.getElementById("stones_image");
x_position=x_position+1;
the_image.style.left=x_position;
the_timer = setTimeout(set_timer, 50);
}
</script>
和有效的代码:
<head>
<script>
var the_timer, x_position = 0, the_image;
function set_timer() {
the_image=document.getElementById("stones_image");
x_position=x_position+1;
the_image.style.left=x_position;
the_timer = setTimeout(set_timer, 50);
}
</script>
</head>
<body onload="set_timer()">
<img src="stones.png" id="stones_image"
style="position:absolute; left:0">
</body>
解决方案
在第一个代码中,你从不调用set_timer
函数,所以它永远不会被执行。
在第二个代码中,set_timer
在文档加载时调用(使用<body onload="set_timer">
,所以它可以工作。
推荐阅读
- php-7 - 如何将 PHP5 代码修复为 PHP7
- javascript - FB.ui 未定义
- svn - git pull-remote 分支找不到远程参考 [尝试了许多解决方案但失败]
- python - selenium.common.exceptions.TimeoutException 同时通过 expected_conditions 在元素上调用 .click()
- java - 利用 spring kafka 在 kafka 消费者中手动提交偏移的方法
- python - 训练后的神经网络步骤
- python - 按索引访问枚举中的项目
- php - 在两个单词之间执行两个空格
- python - 表单中字段之间的Django间距
- mysql - 从每个组中获取除最大值之外的所有项目 - mysql