OK,在使用以下声明时,会使一个最常用的漂浮下拉广告失效
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标准"里可以正确运行
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();
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();
本文解决了一个常见问题,即在遵循W3C标准的情况下,如何使漂浮下拉广告正常工作。通过调整scrollTop属性的获取方式,确保了广告能够正确跟随滚动条移动。

被折叠的 条评论
为什么被折叠?



