Daniel Mühlbacher: Gif-Animation bleibt bei DHTML stehen, IE

Hallo,

ich arbeite zur Zeit an einem neuen Design für meine Website und habe ein DHTML Drop-Down Menu eingebaut. Sobald das Menu jedoch benutzt wird, bleibt die Gif-Animation des darunter befindlichen Banners stehen - auch wenn dieser gar nicht vom Menu überlappt wird. Das Phänomen tritt nur im IE auf.

Hier der Quelltext:

<script>
<!--

function show_layer(x)
         {
         if (document.all) { document.all[x].style.visibility="visible"; }
         if (document.getElementById) { document.getElementById(x).style.visibility="visible"; }
         }

function hide_layer(x)
         {
         if (document.all) { document.all[x].style.visibility="hidden"; }
         if (document.getElementById) { document.getElementById(x).style.visibility="hidden"; }
         }

var old;
var memold;

document.onmousedown=do_out;

function do_menu(x)
         {
         if(!old) { old=memold; }

if(old!=x)
                   {
                   show_layer(x);
                   old=x;
                   }
                   else
                       {
                       old="";
                       }
         }

function do_check(x)
         {
         if(old && old!=x)
                {
                hide_layer(old);
                show_layer(x);
                old=x;
                }
         }

function do_out()
         {
         if(old)
                {
                hide_layer(old);
                }

memold=old;
         old="";
         }

// -->
</script>

und das Menu:

<div id="m1" class="menu1" style="left: 0; width: 188;">
<table border="0" cellspacing="0" cellpadding="4" width="188" bgcolor="1A384E">
<tr>
<td align="center" style="background-image:url(menu1.gif);"><font><a class="menu2" href="javascript:do_menu('m1x')" onmouseover="do_check('m1x')"><b>Site</b></a></font></br>
</td>
</tr>
</table>
</div>

<div id="m1x" class="submenu1" style="left: 0; width: 188;">
<table border="0" cellspacing="0" cellpadding="4" width="188" bgcolor="1A384E">
<tr>
<td align="center">
<font><a class="menu2" href="">News</a></font><br>
<font><a class="menu2" href="">Newsletter</a></font><br>
<font><a class="menu2" href="">Statistiken</a></font><br>
<font><a class="menu2" href="">Über uns</a></font></br>
</td>
</tr>
</table>
</div>

usw.

Hat jemand von euch vielleicht eine Ahnung, wie man diesen Effekt im IE beseitigen könnte? Vielen Dank schonmal.

  1. Hallo,

    Hat jemand von euch vielleicht eine Ahnung, wie man diesen Effekt im IE beseitigen könnte? Vielen Dank schonmal.

    Man könnte es mal mit der kompletten Beseitigung des IE versuchen. ;)

    Aber Scherz beiseite: Versuche mal die Funktion per onclick aufzurufen statt über das href-Attribut. also so: href="#" onclick="do_menu('m1x')"
    ich könnte mir nämlich vorstellen, das er sich, weil das Banner in einem iFrame liegt (warum eigentlich?) an dem javascript: im href stört.

    MfG Mülli

    --
    Viva Colonia!
    1. Versuche mal die Funktion per onclick aufzurufen statt über das href-Attribut. also so: href="#" onclick="do_menu('m1x')"

      ich könnte mir nämlich vorstellen, das er sich, weil das Banner in einem iFrame liegt (warum eigentlich?) an dem javascript: im href stört.

      Danke für die schnelle Antwort, du hast damit ins schwarze getroffen :) Mit dem onclick funktioniert's tatsächlich, die Gif-Animation läuft weiter!

    2. Hi,

      Aber Scherz beiseite: Versuche mal die Funktion per onclick aufzurufen statt über das href-Attribut. also so: href="#" onclick="do_menu('m1x')"

      Besser so: onclick="do_menu('m1x'); return false", denn nur so schaltest Du (falls JS aktiviert ist) die Standard-Reaktion des Browsers sicher ab. Href bietet jetzt Platz fuer eine No-JS-Alternative.

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. Hallo,

        Besser so: onclick="do_menu('m1x'); return false", denn nur so schaltest Du (falls JS aktiviert ist) die Standard-Reaktion des Browsers sicher ab. Href bietet jetzt Platz fuer eine No-JS-Alternative.

        Womit du natürlich vollkommen recht hast. :)

        MfG Mülli

        --
        Viva Colonia!