Astip Fischer: CrossBrowser Positionierung von grafischen Objekten als Hintergrundbilder

Beitrag lesen

Das Problem ist das Zentrieren von grafischen Elementen.

Ich habe in meinem HTML- Dokument eine Tabelle die horizontal zentriert und mit einer festen Pixelgröße zum oberen Bildschirmrand liegt, und MouseOver- Buttons beinhaltet. Über diese Tabelle soll eine transparente GIF- Animation ( ein Punkt wandert entlang einer Linie rauf und runter) mit Hilfe einer neuen Ebene zentriert gelegt werden und soll sich als Endlosschleife bewegen, ohne das die MouseOver- Funktionalität der darunterliegenden Buttons beeinträchtigt wird.

Mit dem unten beschriebenen Script wird die GIF- Animation schön immer in der Mitte des Bildschirms positioniert, egal wie groß dieser ist.
Wie kann ich Grafiken aber so positionieren, dass diese nur in horizontaler Richtung zentriert werden (auch bei veränderlicher Bildschirmgröße), die vertikale Position zum oberen Bildschirmrand aber immer das Gleiche bleibt - nicht vertikal mittig  sondern mit einem festen Pixelabstand zum oberen Bildschirmrand fixiert - also ein Mischung von % und px- Werten.

Hat da jemand eine Idee?
Hier ist das ganze beschrieben:

<BODY BGCOLOR="#FFFFFF" ONLOAD="bglayer()"><STYLE TYPE="text/css">
<!--
#Bild
{
position: absolute;
visibility: hide;
z-index: 1;
}
#Text
{
position: absolute;
visibility: show;
z-index: 2;
}
-->
</STYLE> <SCRIPT LANGUAGE="JavaScript">
<!-- ... Quelle Dummy ...
function bgcenter(){}
function bglayer(){}
// ... Ende Dummy ... -->
</SCRIPT> <SCRIPT LANGUAGE="JavaScript1.2">
<!-- ... Quelle Beispiel ...
// Browserabhaengige Informationen
var nn = (navigator.appName == "Netscape") ? true : false
// Bildinformationen
var imgURL  = "bild.gif"
var imgWidth = 180
var imgHeight = 50
// Zentrieren des Hintergrundbilds
function bgcenter()
{
with(nn ? document.Bild : Bild)
{
  if(nn)
  {
   top = Math.floor((innerHeight - imgHeight) / 2)
   left = Math.floor((innerWidth - imgWidth) / 2)
   width = imgWidth
   height = imgHeight
  }
  else
  {
   style.top = Math.floor((Number(document.body.clientHeight) - imgHeight) / 2)
   style.left = Math.floor((Number(document.body.clientWidth) - imgWidth) / 2)
   style.width = imgWidth
   style.height = imgHeight
  }
}
}
// Initialisierung der Darstellung
function bglayer()
{
with(nn ? document.Bild : Bild)
{
  if(nn)
   with(document)
   {
    /*en("text htm*/;
    write("<IMG SRC="" + imgURL + "" " +
     "WIDTH=" + imgWidth + " " +
     "HEIGHT=" + imgHeight + " ALT="">")
    close()
   }
  else
   innerHTML = "<IMG SRC="" + imgURL + "" " +
     "WIDTH=" + imgWidth + " " +
     "HEIGHT=" + imgHeight + " ALT="">"
  bgcenter()
  visibility = true
}
}
// -->
</SCRIPT>
  <DIV ID="Bild"></DIV>
  <DIV ID="Text">
<P>Das Hintergrundbild ändert seine Position, wenn das Fenster in der
  Größe verändert wird.</P> </DIV>  
</BODY>