hupo300: Dynamische Buttons

Hallo!

Ich hoffe Ihr könnt mir helfen, da ich ein Problem habe auf das ich
einfach nicht drauf komme.
Ich habe ein Nav-Menü mit dynamisch grafischen Buttons und eine SCRIPT-Fkt. das ein Schneien erzeugt.
Nun mein Problem: Diese beiden Funktionen lassen sich nicht kombinieren. Sobald ich mit der Maus über einen Menüpunkt fahre, beginnt es plötzlich z.B. "Fotos" zu schneien.
Die Buttons ändern sich zwar korrekt, doch auf einem ganz anderen
Punkt am Bildschirm

Für jeden Tipp währe ich dankbar :)!

LG

der Sourcecode:

<html>
<head>

<script type="text/javascript">

<!--

Bild1_Vorher = new Image();
        Bild1_Vorher.src = "vip_button_vorh.jpg";
 Bild1_Nachher = new Image();
        Bild1_Nachher.src = "vip_button_nachh.jpg";

Bild2_Vorher = new Image();
        Bild2_Vorher.src = "foto_button_vorh.jpg";
 Bild2_Nachher = new Image();
        Bild2_Nachher.src = "foto_button_nachh.jpg";

function Bildwechsel(Bildnr,Bildobjekt)

{
           window.document.images[Bildnr].src = Bildobjekt.src;
         }

</-->

</script>

</head>

<body bgcolor="#000000">

<! -- *********Funktion für das Schneien********** -->

<SCRIPT language=JavaScript1.2>

var no = 50; // snow number
var speed = 50; // smaller number moves the snow faster
var snowflake = "schnee.gif";
var amplitude = 10; // Maximal Hin und Her Bewegung der Flocken

var ns4up = (document.layers) ? 1 : 0;  // browser sniffer
var ie4up = (document.all) ? 1 : 0;

var dx, xp, yp;    // coordinate and position variables
var am, stx, sty;  // amplitude and step variables
var i, doc_width = 800, doc_height = 600;

if (ns4up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {
dx[i] = 0;                        // set coordinate variables
xp[i] = Math.random()*(doc_width-50);  // set position variables
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*amplitude;  // set amplitude variables
stx[i] = 0.02 + Math.random()/10; // set step variables
sty[i] = 0.7 + Math.random();     // set step variables

if (ns4up) {                      // set layers

document.write("<layer name="dot"+ i +"" left="15" ");
document.write("top="15" visibility="show"><img src="");
document.write(snowflake + "" border="0"></layer>");

} else if (ie4up) {

document.write("<div id="dot"+ i +"" style="POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;"><img src="");
document.write(snowflake + "" border="0"></div>");

}
}
function snowNS() {  // Netscape main animation function

for (i = 0; i < no; ++ i) {  // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.layers["dot"+i].top = yp[i];
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowNS()", speed);
}
function snowIE() {  // IE main animation function

for (i = 0; i < no; ++ i) {  // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx[i] += stx[i];
document.all["dot"+i].style.pixelTop = yp[i];
document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowIE()", speed);
}
if (ns4up) {
snowNS();
} else if (ie4up) {
snowIE();
}
// End -->
</SCRIPT>

<!-- Schneefunktion ENDE -->

<table
 align="center" border="3" cellpadding="6" cellspacing="0">

<tr>

<td align="center">

<a href="menue_bilder.html"
   onMouseOver="Bildwechsel(0,Bild1_Nachher)"
   onMouseOut="Bildwechsel(0,Bild1_Vorher)">
  <img src="vip_button_vorh.jpg"></a>

</td>

</tr>

<tr>

<td align="center">

<a href="menue_bilder.html"
   onMouseOver="Bildwechsel(1,Bild2_Nachher)"
   onMouseOut="Bildwechsel(1,Bild2_Vorher)">
  <img src="foto_button_vorh.jpg"></a>

</td>

</tr>

</table>

</body>
</html>

  1. Hi !

    </-->
       </script>

    ??!!
    :o)

    1. Hallo nochmal !
      Hab's grade getestet !
      Da dein Skript im Body-Bereich vor der Tabelle plaziert ist, stimmen die Index-Nummern für deine dynamischen, graphischen Bild-Links nicht mehr !!
      Setz' einfach das Skript hinter die Tabelle, dann geht's !!
      :-)

      1. Hallo 08/15!

        Ich habs jetz probiert und es funktioniert!

        Danke für deinen Tip! :)

        LG hupo

        1. Trotzdem hat Struppi Recht !
          Die Browserabfrage ist mindestens 4 Jahre alt und in den neuen Navigators kann das Skript nicht laufen !
          Eine Notlösung könnte sein das 'document.all' durch 'document.getElementById' zu ersetzen, über kurz oder lang wirst du aber nicht umhinkommen, den/das gesamte/n Skript umzuschreiben bzw. 'upzudaten' !
          Vermute mal du hast einen MSIE !!
          :o)

  2. Für jeden Tipp währe ich dankbar :)!

    such dir einen neuen Code!

    function Bildwechsel(Bildnr,Bildobjekt)

    {
               window.document.images[Bildnr].src = Bildobjekt.src;
             }

    Mit dem Index bei Bildern zu arbeiten ist nicht unbedingt sinnvoll. Da das Skript sobald ein neues Bild dazu kommt nicht mehr richtig funktioert.

    </-->

    Das ist fehlerhaftes JS.

    </script>

    <! -- *********Funktion für das Schneien********** -->

    Dieses Script ist für 4'er Browser geschrieben. Es funktioniert lediglich im IE 4.x und den dazu kompatibeln Browsern zuverlässig und das sind nicht viele.

    Allerdings ist das auch nicht tragisch bei so einem Skript.

    Struppi.