在使用以下声明时,会使一个最常用的漂浮下拉广告失效:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 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('' ''+content+'''');
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 { 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,''http://sms.tom.com/pkly/pkly.html" target="_blank" />http://smsad.tom.com/smsweb/images/2005_new/cn/qp_100x400.gif" width="100" height="400" />'');
theFloaters.play(); |