DOCTYPE html PUBLIC 导致js飘动不可用

  网页需要增加一个全屏飘动的广告,在网上搜了段js代码,下载下来,测试没有问题。随即将该段代码复制出来,粘贴到网站的模板里,生成网页。问题出现了:飘动图片死活不飘动。分别在各个浏览器下测试,发现ie浏览器下可以飘动,chrome和火狐均不支持。

  漫漫解决上路了:

  1、严格检查js脚本,是否有错误。(排除)

  2、逐段删除模板里的代码,直至只剩下飘动广告,问题依然存在。(排除)

  3、此时有点迷茫了,明明直接运行下载的实例,该段代码没有问题啊,在各个浏览器下都已测过,为何在自己的模板里就不行了,哪怕只有原封不动的该段js代码。冥思苦想良久,突然发现模板头部有默认代码:,而下载的例子里没有,随即删掉、生成,广告开始飘动了。

  分析原因:

  此为DOCTYPE申明,网页加入该代码意味着,js的编写必须符合规范。

  网上搜索发现,这是因为加入DOCTYPE申明后,js里是不能使用document.body的,一定要改成document.documentElement,还有就是加"px"。

  修改代码:

修改前:

width = document.body.clientWidth;
height = document.body.clientHeight;
Hoffset = img1.offsetHeight;
Woffset = img1.offsetWidth;
img1.style.left = xPos + document.body.scrollLeft;
img1.style.top = yPos + document.body.scrollTop;

修改后:

width = document.documentElement.clientWidth;
height = document.documentElement.clientHeight;
Hoffset = qingrenjie_pd.offsetHeight;
Woffset = qingrenjie_pd.offsetWidth;
img1.style.left = xPos + document.documentElement.scrollLeft + "px";
img1..style.top = yPos + document.documentElement.scrollTop + "px";