做页面的时候可能会用到位置固定的层,读取document.body.scrollTop来设置层的位置,像这样,
window.οnscrοll=function () {
var oFix=document.getElementById("divfix");
oFix.style.top=document.body.scrollTop+"px";
}
可是怎么没有达到预期效果呢,输出document.body.scrollTop的值一看,一直都是0.原来是DTD的问题,要是页面直接用<html>开头的话就没有问题了.但是要符合web标准,DTD当然是不能少的.使用DTD时用document.
documentElement.scrollTop代替document.body.scrollTop就可以了
window.οnscrοll=function () {
var oFix=document.getElementById("divfix");
oFix.style.top=document.documentElement.scrollTop+"px";
}
摘自:http://www.111cn.net/js_a/73/3504e367c04f83f9626cf9811a52c33b.htm
var delta = 0.8;
var collection;
var closeB = false;
function floaters() {
this.items = [];
this.addItem = function(id, x, y, content) {
document.write('<DIV id=' + id + ' style="Z-INDEX: 10; POSITION: absolute; width:80px; height:60px;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()', 30);
}
}
function play() {
if (screen.width <= 800 || closeB) {
for (var i = 0; i < collection.length; i++) {
collection[i].object.style.display = 'none';
}
return;
}
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.body.scrollTop + followObj_y)) {
var dy = (document.body.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 = '';
}
}
function closeBanner() {
closeB = true;
return;
}
var theFloaters = new floaters();
//
theFloaters.addItem('followDiv1', 'document.body.clientWidth-86', 80, '<img src="ad.jpg" style="height:450px; width:80px;"><br><img src=images/close.gif onClick="closeBanner();">');
theFloaters.addItem('followDiv2', 6, 80, '<img src="ad.jpg" style="height:450px; width:80px;"><br><img src=images/close.gif onClick="closeBanner();">');
theFloaters.play();