Stefaan: Probs beim Bewegen von «div» Layern

Servus!

Ich hab ein kleines Problem mit dem Bewegen von <div> Layern. In Selfhtml hab ich nur Beschreibungen für <layer> Layer gefunden.
Es schaut so aus: Ich hab ein Menü in einem Layer liegen, dass mit 2 Buttons rauf und runter Bewegt werden soll. Ich hab bis jetzt noch keinen Ansatz gefunden, der sowohl im IE als auch unter NN funktioniert!

Danke euch!

Stefan

  1. Kleiner Tip: www.dansteinman.com/dynduo/
    Da gibt es (fast) alles, was das Herz begehrt.

    1. Servus!
      Danke einmal für den Tipp, ich hab mir dort ein Bsp. rauskopiert, nur in abgeänderter Version gehts nicht :(

      Hier ist es, ich finde keinen Fehler.. *grr*
      Dort gehts aber.... *gr*

      Das Script:

      <script language="Javascript">
      <!--

      ns4 = (document.layers)? true:false
      ie4 = (document.all)? true:false

      function init() {
      if (ns4) menue = document.menu
      if (ie4) menue = menu.style
      menue.xpos = parseInt(menue.left)
      menue.ypos = parseInt(menue.top)
      }

      function moveBy(obj,x,y) {
      obj.xpos += x
      obj.left = obj.xpos
      obj.ypos += y
      obj.top = obj.ypos
              alert(obj.left)
              alert(obj.top)
      }

      //-->
      </script>

      und der Body - Teil:
      Link, dass das Menü rauffahren soll....
      <A HREF="javascript:moveBy(menue,10,0)">rauf</A>

      Das Menü selber:
      <div id="menu" style="position:absolute;top:20px;left:3px"></div>

      aja.. noch dir URL zu dem ganzen:
      http://www.borgmistelbach.ac.at

      Im NN tut sich gar nichts, im IE krieg ich noch ne Fehlermeldung, dass das Obj "menue" nicht def. ist! (Zeile 0)

      Danke euch vielmals!

      Stefan

      1. Servus!

        Hab den Fehler!

        Danke für eure Bemühungen!
        (Ist aber noch nicht online!)

        Stefan

  2. Servus!

    Ich hab ein kleines Problem mit dem Bewegen von <div> Layern. In Selfhtml hab ich nur Beschreibungen für <layer> Layer gefunden.
    Es schaut so aus: Ich hab ein Menü in einem Layer liegen, dass mit 2 Buttons rauf und runter Bewegt werden soll. Ich hab bis jetzt noch keinen Ansatz gefunden, der sowohl im IE als auch unter NN funktioniert!

    Danke euch!

    Stefan

    Hallo Stefan

    habe sowas schon auf meiner Seite gemacht und es funktioniert soweit auch ganz gut (mit IE5.0 bzw. NN4.7) :-)

    Hier kommt mal der Code(auszug) dazu:

    Hoffe er hilft dir...

    function Init()
    {
    isIE = (document.all != null);
    isNS = (document.layers != null);

    if (isNS)  
    {  
    

    doc = "document";
      sty = "";
    }
    if (isIE)
    {
      doc = "document.all";
      sty = ".style";
    }
    }
    function menu()
    {
    if (bHide)
      showmenu();
    else
      hidemenu();
    }

    function hidemenu()
    {
    if (bHide != true)
    {
      nPos-=3;
      if (nPos > -90)
       bCont = true;
      else
       bCont = false;

    tmp = eval(doc + '["divMenu"]' + sty);
      tmp.top = nPos;

    if (bCont == true)
       window.setTimeout("hidemenu()",1);
      else
       bHide = true;
    }
    }

    function showmenu()
    {
    if (bHide != false)
    {
      nPos+=3;
      if (nPos < 0)
       bCont = true;
      else
       bCont = false;

    tmp = eval(doc + '["divMenu"]' + sty);
      tmp.top = nPos;

    if (bCont == true)
       window.setTimeout("showmenu()",1);
      else
       bHide = false;
    }
    }

    <body onload="Init()">
    <div id="divMenu" style="position:absolute">
        <img src="xyz.gif" name="imgMenu" border="0">
        <!-- aus einem Link heraus "javascript:menu()" aufrufen -->
        <!-- bzw. ShowMenu()/HideMenu() -->
    </div>
    </body>

  3. ... Bewegen von <div> Layern
    Es schaut so aus: Ich hab ein Menü in einem Layer liegen, dass mit 2 Buttons rauf und runter Bewegt werden soll. Ich hab bis jetzt noch keinen Ansatz gefunden, der sowohl im IE als auch unter NN funktioniert!

    In der Tat behandeln NS und IE die Layer verschieden.

    Ich mache immer (bei einem ähnlichen Problem: Layer sollen bei MouseOver erscheinen und dann verschwinden) folgendes:

    Abfrage nach Browser; ist klar:
        var isNS = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4);

    dann schon der erste Unterschied:
        var HIDDEN = (isNS) ? 'hide' : 'hidden';
        var VISIBLE = (isNS) ? 'show' : 'visible';

    dann der Zweite:
        var pop1 = (isNS) ? document.pop1 : document.all.pop1.style;

    die OnMouseOver-Referenz:
       <A HREF="TEXT.html" onMouseOver = "showObject(pop1)" onMouseOut = "hideObject(pop1)">
          <B>SOMETEXT</B></CENTER></A>

    und der eigentliche Layer, der verschwinden und erscheinen soll
        <DIV ID = "pop1" CLASS = "popupr">Wer oder was sind die 7M?</DIV>

    Du müßtest dieses Script praktisch nur in der angewendeten Funktion hinter pop1 ändern. Der ID-Tag markiert den Layer praktisch für das Script und der CLASS-Tag enthält nur Formatierungsangaben (in dem Falle eine Box um den Text an einem bestimmten Ort).
    Das dieses Script so funktioniert, davon kannst Du Dich hier (HTTP://www.physcip.uni-stuttgart.de/phy21054/tree/clan/clan.html) überzeugen.