Markus Speicherl: Script dynamisieren

Hallo

Ich habe ein problem an dem ich seit stunden knabber:
Ich habe ein Script und dieses weitesgehend auf meine BEdürfnisse angepasst. Leider bekomme ich es nicht hin es dynamisch zu gestalten damit ich damit 2 ver. DIV-Elemente gleichzeitig zu betreiben:

Hier das Script:
-----------------------------------------------------------------

var divPos = new Array();
     divPos['floatHead'] = new Array(true,0,0);
   divPos['uiStatus'] = new Array(false,30,30);

function slide_test(){
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
  }

function slide_close(){
    $('floatHead').style.visibility="hidden"
  }

function slide_show(id){
   if(!$(id)) setupdiv(id);

var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
   var d = document;

function slide_obj(id){
    var el=$(id);
    el.style.visibility="visible"
    if(d.layers)el.style=el;
    el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
    el.x = divPos[id][1];

if (divPos[id][0]){
   el.y = divPos[id][2];
    }else{
   el.y = ns ? pageYOffset + innerHeight : slide_test().scrollTop + slide_test().clientHeight;
   el.y -= divPos[id][2];
    }

return el;
   }

window.slide_refresh=function(){
    if (divPos[id][0]){
   var pY = ns ? pageYOffset : slide_test().scrollTop;
   getObj.y += (pY + divPos[id][2] - getObj.y)/8;
    }else{
   var pY = ns ? pageYOffset + innerHeight - $(id).offsetHeight: slide_test().scrollTop + slide_test().clientHeight - $(id).offsetHeight;
   getObj.y += (pY - divPos[id][2] - getObj.y)/8;
    }

$(id).style.left=getObj.x+"px";
  $(id).style.top=getObj.y+"px";

setTimeout("slide_refresh()", 10);
   }
   getObj = slide_obj(id);
   slide_refresh();
  }

und noch der Body-Code
-----------------------------------------------------------------

<body onload="slide_show('floatHead');">

<div id="floatHead">inhalt</div>
<div id="uiStatus">inhalt</div>

Ich hatte versucht die Funktion slide_obj() und slide_refresh() "auszulagern", also dass sie nicht funktionen in funktionen sind, in der Hoffnung dass sie dann eigenständig arbeiten. Weil derzeit ist es so, dass das script tadellos anläuft mit dem ersten DIV und es scrollt... aber wenn man das zweite DIV dazuläd er nurnoch das zweite DIV scroltl, das erste aber fixiert.

Bin für hilfe dankbar.

grüsse, M. Speicherl

  1. Das ganze basiert - wie man sieht - auf der prototype-engine und ist im originalen hier her: http://www.dynamicdrive.com/dynamicindex17/floatbar.htm

    1. Lieber Markus,

      http://www.dynamicdrive.com/dynamicindex17/floatbar.htm

      diesen Effekt kann man auch <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#position@title=mit CSS> realisieren (grüne Box "f1"). Dazu braucht es kein Javascript!

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)