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

使用<!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标准"里可以正确运行

以下是引用片段:
var delta=0.15 
var collection; 
function floaters() { 
this.items = []; 
this.addItem = function(id,x,y,content) 

document.write(’<DIV id=’+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>’);
var newItem = {}; 
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); 


function play() 
{
for(var i=0;i<collection.length;i++) 

var followObj = collection[i].object; 
var followObj_x = (typeof(collection[i].x)==’string’?eval(collection[i].x):collection[i].x); 
var followObj_y = (typeof(collection[i].y)==’string’?eval(collection[i].y):collection[i].y);
if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x)) { 
var dx=(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)) { 
var dy=(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 = ’’; 


var theFloaters = new floaters(); 
theFloaters.addItem(’followDiv1’,’document.body.clientWidth-108’,1,’<a href=/"http://sms.tom.com/pkly/pkly.html/" target=/"_blank/" /><img border=0 src=/"http://smsad.tom.com/smsweb/images/2005_new/cn/qp_100x400.gif/" width=/"100/" height=/"400/" /></a>’);
theFloaters.play();

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值