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";
下一篇 >>