var delta=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: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.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;
     }
    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 = '';
   }
  }
  function closeBanner()
  {
   closeB=true;
   return;
  }var theFloaters  = new floaters();
//
theFloaters.addItem('followDiv1','document.documentElement.clientWidth-75',0,'<a href=/rfpro/stock/ target=_blank><img src="rfpro/stock/images/addl.jpg" width=75 height=295 border=0></a><br><br><img src="rfpro/stock/images/close.png" onClick="closeBanner();">');
theFloaters.addItem('followDiv2',0,0,'<a href=/rfpro/stock/ target=_blank><img src="rfpro/stock/images/addl.jpg" width=75 height=295 border=0 ></a><br><br><img src="rfpro/stock/images/close.png" onClick="closeBanner();">');
theFloaters.play();

解决方案 »

  1.   

     followObj.style.left = followObj.offsetLeft + dx+"px";
     followObj.style.top = followObj.offsetTop + dy+"px";
      

  2.   

    谢谢lhprincel,改了以后右移是可以了,但是还是不会随屏幕上下滚动……
      

  3.   


    谢谢lhprincel,改了以后右移是可以了,但是还是不会随屏幕上下滚动……请赐教!
      

  4.   


    <!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>
    </head>
    <body>
        <script type="text/javascript">
            var delta = 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: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;
                }
                var bodyScrollTop = document.body.scrollTop + document.documentElement.scrollTop;
                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 = parseInt(followObj.offsetLeft) + dx + "px";
                    }
                    if (followObj.offsetTop != (bodyScrollTop + followObj_y)) {                    var dy = (bodyScrollTop + followObj_y - followObj.offsetTop) * delta;
                        dy = (dy > 0 ? 1 : -1) * Math.ceil(Math.abs(dy));
                        followObj.style.top = parseInt(followObj.offsetTop) + dy + "px";
                    }
                    followObj.style.display = '';
                }
            }
            function closeBanner() {
                closeB = true;
                return;
            }        var theFloaters = new floaters();
            //
            theFloaters.addItem('followDiv1', 'document.documentElement.clientWidth-75', 0, '<a href=/rfpro/stock/ target=_blank><img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song1.jpg" width=75 height=295 border=0></a><br><br><img src="plus.gif" onClick="closeBanner();">');
            theFloaters.addItem('followDiv2', 0, 0, '<a href=/rfpro/stock/ target=_blank><img src="http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_song5.jpg" width=75 height=295 border=0 ></a><br><br><img src="plus.gif" onClick="closeBanner();">');
            theFloaters.play();
        </script>
        aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />
    aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />aa<br />
    </body>
    </html>http://blog.csdn.net/lploveme/article/details/7011174
      

  5.   


    followObj.style.left = followObj.offsetLeft + dx+"px";
    followObj.style.top = followObj.offsetTop + dy+"px";