webmonk: An alle DHTML und Netscape geplagten dieser welt eine hilfe:

Da ich in letzter Zeit immer mehr Fragen zu DHTML (DIV, und warum funkt das nicht im NE?) gelesen habe, möchte ich dem ein Ende setzen und stelle eine kleine Sammlung von Grundfunktionen (lauffähig für MSIE,N,N6,MOZILLA) für jeden zur Verfügung! (Erweiterungen hierzu sind erwünscht, dann jedoch wieder posten!)

function hide(id)
{
  if (document.layers)
  {
    if (document.layers[id])
      document.layers[id].visibility = "hidden";
    else
      alert("DLib: No matching Layer found");
  }
  else if (document.all)
    document.all[id].style.visibility = "hidden";
  else if (document.getElementById)
    document.getElementById(id).style.visibility = "hidden";
}

function show(id)
{
  if (document.layers)
  {
    if (document.layers[id])
      document.layers[id].visibility = "visible";
    else
      alert("DLib: No matching Layer found");
  }
  else if (document.all)
    document.all[id].style.visibility = "visible";
  else if (document.getElementById)
    document.getElementById(id).style.visibility = "visible";
}
function getX(id)
{
  if (document.layers)
  {
    return document.layers[id].left;
  }
  else if (document.all)
  {
    if (isNaN(document.all[id].style.left))
    {
      return Number(document.all[id].style.left.replace(/px/,""));
    }
    else
    {
      return document.all[id].style.left;
    }
  }
  else if (document.getElementById)
  {
    left = document.getElementById(id).style.left;
    if (isNaN(left))
    {
      return Number(left.replace(/px/,""));
    }
    else
    {
      return left;
    }
  }
}

function getY(id)
{
  if (document.layers)
  {
    return document.layers[id].top;
  }
  else if (document.all)
  {
    if (isNaN(document.all[id].style.top))
    {
      return Number(document.all[id].style.top.replace(/px/,""));
    }
    else
    {
      return document.all[id].style.top;
    }
  }
  else if (document.getElementById)
  {
    top = document.getElementById(id).style.top;
    if (isNaN(top))
    {
      return Number(top.replace(/px/,""));
    }
    else
    {
      return top;
    }
  }
}

// function returns the document - width (pixel)
function getDocWidth()
{
  if (document.body)
  {
    docWidth = document.body.clientWidth;
    if (!isNaN(docWidth)) return document.body.clientWidth;
    else
    {
       return self.innerWidth;
    }
  }
  else if (self)
  {
    return self.innerWidth + 4;
  }
}

// function returns the document - height (pixel)
function getDocHeight()
{
  if (document.body)
  {
    docHeight = document.body.clientHeight;
    if (!isNaN(docHeight)) return docHeight;
    else
       return self.innerHeight;
  }
  else if (self)
  {
    return self.innerHeight + 4;
  }
}

function move_abs(id,x,y)
{
  if (document.layers)
  {
    document.layers[id].top = y;
    document.layers[id].left = x;
  }
  else if (document.all)
  {
    document.all[id].style.top = y;
    document.all[id].style.left = x;
  }
  else if (document.getElementById)
  {
    document.getElementById(id).style.top = y;
    document.getElementById(id).style.left = x;
  }
}

function move_rel(id,x,y)
{
  if (document.layers)
  {
    document.layers[id].top = getY(id) + y;
    document.layers[id].left = getX(id) + x;
  }
  else if (document.all)
  {
    document.all[id].style.top = getY(id) + y;
    document.all[id].style.left = getX(id) + x;
  }
  else if (document.getElementById)
  {
    document.getElementById(id).style.top = getY(id) + y;
    document.getElementById(id).style.left = getX(id) + x;
  }
}
function move_abs_anim(id,x,y,step,delayTime,fkt_name)
{
  maa_timer(id,getX(id),getY(id),x,y,step,delayTime,fkt_name);
}
function move_rel_anim(id,x,y,step,delayTime,fkt_name)
{
  maa_timer(id,getX(id),getY(id),(getX(id)+ x),(getY(id)+ y),step,delayTime,fkt_name);
}
function maa_timer(id,x,y,destx,desty,step,delayTime,fkt_name)
  {
  var function_call="";
  var timeout=0;
  if (x>destx)
  {
    x = x - step;
    if (x<destx) x=destx;
    else timeout=1;
  }
  else if (x<destx)
  {
    x = x + step;
    if (x>destx) x=destx;
    else timeout=1;
  }
  if (y>desty)
  {
    y = y - step;
    if (y<desty) y=desty;
    else timeout=1;
  }
  else if (y<desty)
  {
    y = y + step;
    if (y>desty) y=desty;
    else timeout=1;
  }
  if (timeout==1)
  {
    move_abs(id,x,y);
    function_call = "maa_timer('"+id+"',"+x+","+y+","+destx+","+desty+","+step+","+delayTime+",""+fkt_name+"")";
    aktTimer = window.setTimeout(function_call,delayTime);
  }
  else
  {
   if (fkt_name!="")
   {
    aktTimer = window.setTimeout(fkt_name,0);
   }
  }
}

Ich hoffe ich kann damit wenigsten einem helfen!

lg, webmonk

p.s.: nicht webmönchen!

  1. Hi, <-- eine Begruessung

    Da ich in letzter Zeit immer mehr Fragen zu DHTML (DIV, und warum funkt das nicht im NE?)
    gelesen habe, möchte ich dem ein Ende setzen und stelle eine kleine Sammlung von
    Grundfunktionen (lauffähig für MSIE,N,N6,MOZILLA) für jeden zur Verfügung! (Erweiterungen
    hierzu sind erwünscht, dann jedoch wieder posten!)

    Das gibt es schon so oft in IMHO besserer Ausfuehrung, dass sich das nicht lohnt. Mal ganz
    abgesehen davon, dass das nicht hierher passt.

    Gruss,
     Christian
     http://wwwtech.de

    1. Sup!

      Das gibt es schon so oft in IMHO besserer Ausfuehrung, dass sich das nicht lohnt. Mal ganz
      abgesehen davon, dass das nicht hierher passt.

      Findest Du nicht, dass Du nicht besonders nett bist, vorausgesetzt, er will wirklich allen ein wenig helfen? Und warum passt es nicht, wenn man mal kein Problem hat, sondern eins löst?

      Klar, bei dynapi.sourceforge.net haben sie sicher mehr Funktionen, aber trotzdem... die sind doch nett, die Funktionen... finde ich.

      Gruesse,

      Bio
      (Plötzlich Anwalt der zu Unrecht niedergemachten *fg*)

      1. Hi,

        Findest Du nicht, dass Du nicht besonders nett bist, vorausgesetzt, er
        will wirklich allen ein wenig helfen?

        Ja, du hast wohl recht, tut mir leid.
        Ich war heut morgen ziemlich schlechter Laune (5:30 aufgestanden....) und
        hatte noch keinen Kaffee gehabt. Dann bin ich einfach unausstehlich.

        Also, nochmal: tut mir leid.

        Gruss,
         Chris'reuevoll'tian
         http://wwwtech.de

      2. Hi Ritter,

        Bio
        (Plötzlich Anwalt der zu Unrecht niedergemachten *fg*)

        darf ich daraus schließen, daß Netscape zu Recht niedergemacht wird? ;-)

        Viele Grüße
              Michael