下面的代码能不能改成闭包,目前命名干扰太大了,很容易冲突
[code=HTML]
 < script language = "JavaScript" >var delta = 0.3;
var collection;
var closeB = false;
var isScrolling = false; // 2005 - 4 - 13
function floaters()
{
   this.items = [];
   this.addItem = function(id, x, y, content)
   {
      document.write('<DIV id=' + id + ' style="Z-INDEX: 1000; 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;
      var scrollTimeout;
      document.body.onscroll = function()
      {
         isScrolling = true;
         clearTimeout(scrollTimeout);
         scrollTimeout = setTimeout(function()
         {
            isScrolling = false;
         }
         , 200);
      }
      setInterval('play()', 30);
   }
}//  ---------------------------------------function play()
{
   if (isScrolling == true)
   {
      // 在拖动时不执行
      return;
   }
   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();
//
url1 = '<a href=http://www.shuangyongjulebu.com target=_blank><img src=imagesad/ad-01.gif width=100 height=322 border=0></a><br><br><img src=imagesad/colse.png onClick=closeBanner();>'
url2 = '<a href=http://www.shuangyongjulebu.com target=_blank><img src=imagesad/ad-02.gif width=100 height=322 border=0></a><br><br><img src=imagesad/colse.png onClick=closeBanner();>'
theFloaters.addItem('followDiv1', 'document.body.clientWidth-106', 80, '' + url1 + '');
theFloaters.addItem('followDiv2', 6, 80, '' + url2 + '');
theFloaters.play(); < / script >[/code]

解决方案 »

  1.   


    (function(){
    var delta = 0.3;
    var collection;
    var closeB = false;
    var isScrolling = false; // 2005 - 4 - 13
    function floaters()
    {
       this.items = [];
       this.addItem = function(id, x, y, content)
       {
          document.write('<DIV id=' + id + ' style="Z-INDEX: 1000; 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;
          var scrollTimeout;
          document.body.onscroll = function()
          {
             isScrolling = true;
             clearTimeout(scrollTimeout);
             scrollTimeout = setTimeout(function()
             {
                isScrolling = false;
             }
             , 200);
          }
          setInterval('play()', 30);
       }
    }//  ---------------------------------------function play()
    {
       if (isScrolling == true)
       {
          // 在拖动时不执行
          return;
       }
       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;
    }
    window.floaters=floaters;})()
      

  2.   

    <!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>
      <title> new document </title>
      <meta name="generator" content="editplus" />
      <script type="text/javascript">
      <!--
    var delta = 0.3;
    var collection;
    var closeB = false;
    var isScrolling = false; // 2005 - 4 - 13var floaters={
       items:[],
       addItem:function(id, x, y, content){
          document.write('<DIV id='+id+' style="Z-INDEX:1000;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;
       },
       play:function(){
          collection = this.items;
          var scrollTimeout;
          document.body.onscroll = function(){
             isScrolling = true;
             clearTimeout(scrollTimeout);
             scrollTimeout = setTimeout(function(){
                isScrolling = false;
             }, 200);
          }
          setInterval('play()', 30);
       }
    }function play(){
       if (isScrolling == true){
      // 在拖动时不执行
      return;
       }
       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;
    }
      //-->
      </script>
     </head> <body>
      <div id="followDiv1">aaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
      <div id="followDiv2">bbbbbbbbbbbbbbbbbbbbbbbbbbb</div>
     </body>
    </html>
    <script type="text/javascript">
    <!--
    url1 = '<a href=http://www.shuangyongjulebu.com target=_blank><img src=ppx10000.gif width=100 height=322 border=0></a><br><br><img src=progress.gif onClick=closeBanner();>'
    url2 = '<a href=http://www.shuangyongjulebu.com target=_blank><img src=qzz10000.gif width=100 height=322 border=0></a><br><br><img src=progress.gif onClick=closeBanner();>'
    floaters.addItem('followDiv1', 'document.body.clientWidth-106', 80, '' + url1 + '');
    floaters.addItem('followDiv2', 6, 80, '' + url2 + '');
    floaters.play();
    //-->
    </script>看看行不行