W3C中使用的对联漂浮广告代码

发布时间:浏览:450

使用<!DOCTYPE会使最常用对联漂浮广告失效的解决方案

OK,在使用以下声明时,会使一个最常用的漂浮下拉广告失效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

直接导致document.body.scrollTop永远等于0, body Scroll永远也不会引发。搜索了一下,发现了解决方案。

即是使用:document.documentElement.scrollTop 替代 document.body.scrollTop

点这里查看老外的详细分析

以下是正确的漂浮广告下拉代码,在所谓的"W3C标准"里可以正确运行

引用

以下是引用片段:
vardelta=0.15
varcollection;
functionfloaters(){
this.items=[];
this.addItem=function(id,x,y,content)
{
document.write(’<DIVid=’+id+’style="Z-INDEX:10;POSITION:absolute;width:100px;height:450px;left:’+(typeof(x)==’string’?eval(x):x)+’;top:’+(typeof(y)==’string’?eval(y):y)+’">’+content+’</DIV>’);
varnewItem={};
newItem.object=document.getElementById(id);
newItem.x=x;
newItem.y=y;
this.items[this.items.length]=newItem;
}
this.play=function()
{
collection=this.items
setInterval(’play()’,10);
}
}
functionplay()
{
for(vari=0;i<collection.length;i++)
{
varfollowObj=collection[i].object;
varfollowObj_x=(typeof(collection[i].x)==’string’?eval(collection[i].x):collection[i].x);
varfollowObj_y=(typeof(collection[i].y)==’string’?eval(collection[i].y):collection[i].y);
if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x)){
vardx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*delta;
dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
followObj.style.left=followObj.offsetLeft+dx;
}
if(followObj.offsetTop!=(document.documentElement.scrollTop+followObj_y)){
vardy=(document.documentElement.scrollTop+followObj_y-followObj.offsetTop)*delta;
dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
followObj.style.top=followObj.offsetTop+dy;
}
followObj.style.display=’’;
}
}
vartheFloaters=newfloaters();
theFloaters.addItem(’followDiv1’,’document.body.clientWidth-108’,1,’<ahref=\"http://sms.tom.com/pkly/pkly.html\"target=\"_blank\"/><imgborder=0src=\"http://smsad.tom.com/smsweb/images/2005_new/cn/qp_100x400.gif\"width=\"100\"height=\"400\"/></a>’);
theFloaters.play();

热点资讯