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

Beitrag lesen

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!