博客新地址

http://wyz.67ge.com/

Discuz的相对浏览器位置固定的漂浮代码

/*
    [Discuz!] (C)2001-2007 Comsenz Inc.
    This is NOT a freeware, use is subject to license terms

    $RCSfile: floatadv.js,v $
    $Revision: 1.5 $
    $Date: 2007/06/01 22:31:15 $
*/

var delta=0.2;//0.15;
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:' + (document.body.clientWidth - (typeof(x) == 'string' ? eval(x) : x)*2+ 'px; 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()',1);
    }
}
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.documentElement.scrollLeft + followObj_x)) {
            
var dx = (document.documentElement.scrollLeft + followObj_x - followObj.offsetLeft) * delta;
            dx 
= (dx > 0 ? 1 : -1* Math.ceil(Math.abs(dx));
            followObj.style.left 
= (followObj.offsetLeft + dx) + 'px';
        }
        
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) + 'px';

        }
        followObj.style.display 
= '';
    }
}
function closeBanner() {
    closeB 
= true;
    
return;
}

var theFloaters = new floaters();

 

调用方法:

 

theFloaters.addItem('floatAdv1','document.documentElement.clientWidth-60','document.documentElement.clientHeight-60','<div style="position: absolute; left: 6px; top: 6px;">漂浮</div>');
theFloaters.play();
posted @ 2008-07-29 17:55  yongzhi  阅读(832)  评论(0编辑  收藏  举报

博客新地址

http://wyz.67ge.com/