JavaScript对联式浮动广告

摘自: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();


如果出现无法随滚动条上下滚动的问题,请参考:http://hi.baidu.com/rwzwknskrsbfmoq/item/ecc1613f3e8549fe97f88d5f

document.body.scrollTop值为0的解决方法

做页面的时候可能会用到位置固定的层,读取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";
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值