问:嗨,我正在尝试使用我在Eloquent JavaScript书中找到的代码来为网页制作动画。不幸的是,它不起作用。
这是我的HTML:
中央;
边距顶部:100px“ > <
img src = “ thumbnail.png” alt = “ wordpress-logo” 样式= “位置:相对” >
</ p > </ body > </ html >
这是我的JavaScript:
var image = document 。querySelectorAll (“ img” );
var angle = 0 , lastTime = null ;
函数 动画(时间) {
if (lastTime != null )角度+ = (time - lastTime )* 0.001 ; lastTime =时间; 形象。风格。顶部= (数学
。sin (角度) * 20 ) + “ px” ;
形象。风格。左= (数学。COS (角度)* 200 )+ “PX” ; requestAnimationFrame (animate ); }
当我用浏览器的控制台调用image对象时,它返回一个空的NodeList,而HTML文档中显然有一个img元素。当我在控制台中调用image.style时,它说image.style未定义,而我的图像肯定具有style属性。
我的程序中缺少什么吗?
答:这可能与脚本运行的“时间”有关。简而言之,您的脚本会在看到img标签之前运行,因此找不到任何img标签。如果您不使用JQuery并尝试与DOM交互,则应将脚本标签放得尽可能远,否则您的脚本只知道完成文档的一半。尝试将脚本标签放在正文的末尾。如果不起作用,请通知我。