最近尝试着去实现一个在停留在网页侧边的广告页,这个广告页随着滚动条的移动而不断调整自身的位置,从而一直保持在屏幕范围内。
主要原理是设置一个定时器,根据document.body.scrollTop的变化去调整广告页对象的posTop属性。
中间遇到一个问题比较奇怪,发现DOCTYPE为XHTML时document.body.scrollTop总是为0,只有当DOCTYPE为HTML时document.body.scrollTop
的值才会随着滚动条的滑动而变化。
网页源代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>我的减肥经历 </title>
<meta name="keywords" content="" />
<meta name="description" content="我的减肥经历" />
<script language=javascript>
dt3_img="/swissgear/article/left.jpg" //左边图片
dt4_img="/swissgear/article/right.jpg" //右边
function duilianload()
{
sidebar3.style.top=250; //离顶部距离
sidebar3.style.left=5; //离左边距离
sidebar4.style.top=250;
sidebar4.style.right=5; //右边距离
}
function MoveLayer(layerName)
{
var y = 250;//浮动广告层固定于浏览器的y方向位置
var diff = (document.body.scrollTop + y - eval("document.all." + layerName + ".style.posTop"))*0.93;
//alert(document.all.sidebar3.style.posTop);
var y = document.body.scrollTop + y - diff;
// var y = document.body.scrollTop + 50;
eval("document.all." + layerName + ".style.posTop = y");
setTimeout("MoveLayer('"+layerName+"');", 10);//设置20毫秒后再调用函数MoveLayer()
}
if(document.all && window.screen.width>800)
{
//图片对联
document.write("<div id=sidebar3 style='position: absolute;visibility:visible;z-index:2;border:1px solid #ccc;'><a href='http://www.alimama.com/' target='_blank'><img src='http