var delta=0.015;
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()',10);
}
}
function play(){
    
if(screen.width<=1024 || 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;
}网上找的JS对联广告,IE下正常,但火狐下就无法运行,对联始终停在左上角不动,不是document.body.scrollTop这里的问题,这里无论是IE还是火狐都取值为0,改成 document.documentElement.scrollTop还是不行,研究2天了也没找出问题所在。有没有哪位能指点一下啊,万分感谢~~~~

解决方案 »

  1.   

    Firebug调试下。
    http://getfirebug.com/
      

  2.   

    <%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
      <title></title>
      <script type="text/javascript">
        var delta = 0.015;
        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()', 10);
          }
        }
        function play() {      if (screen.width <= 1024 || 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 == 0 ? document.documentElement.scrollLeft : document.body.scrollLeft) + followObj_x)) {
              var dx = ((document.body.scrollLeft == 0 ? document.documentElement.scrollLeft : document.body.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.body.scrollTop == 0 ? document.documentElement.scrollTop : document.body.scrollTop) + followObj_y)) {
              var dy = ((document.body.scrollTop == 0 ? document.documentElement.scrollTop : document.body.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;
        }
        o = new floaters();
        o.addItem("A", 100, 200, "<img src=http://dotnet.aspx.cc/Images/logoSite.gif>")
        o.addItem("B", 800, 200, "<img src=http://dotnet.aspx.cc/Images/logoSite.gif>")
        o.play();
      </script>
    </head>
    <body>
      <form id="form1" runat="server">
      </form>
    </body>
    </html>