Autor Zpráva
Pan X
Profil
Zdravím, narazil jsem na jeden problém a nevím si sním rady.

Mám div:

<div class="item"  onmouseover="fade('pavel-novak-pavel-novak-de');" onmouseout="fadeout('pavel-novak-pavel-novak-de');">
          <img src="images/no_photos.jpg">
          <p class="name"><strong>Pavel Novák</strong></p>
          <p class="desc">Proin a nunc augue, vel posuere nulla. Etiam tempus, purus nec ultricies tristique, massa massa viverra lorem, vel lacinia nisi risus non lectus. Suspendisse eget odio quam, pretium pretium nibh. Nam diam elit.</p>
          <menu id="pavel-novak-pavel-novak-de" style="opacity: 0">
            <li><p><a href="#">Zobazit profil</a></p></li>
            <li><p><a href="#">Upravit kontakt</a></p></li>
            <li><p><a href="#">Smazat kontakt</a></p></li>
          </menu>
        </div>


a script:

    <script>
      function fade(idecko){
        x=0;
	      while(x<10) {
          x++;
		      y=30*x;
		      window.setTimeout("document.getElementById('" + idecko + "').style.opacity="+(x/10),y);
	      }
      }
      function fadeout(idecko){
	      x=10;
	      while(x>0) {
		      x--;
		      y=30*(10-x);
		      window.setTimeout("document.getElementById('" + idecko + "').style.opacity="+(x/10),y);
	      }
      }
    </script>	


Všechno funguje OK, ale když přes ten div myší pohybuji divně to bliká a já nevím jak to opravit.
_es
Profil
V IE8 to nefunguje vôbec.
Používaš globálne premenné x a y, ktoré si tie dve funkcie navzájom stále prepisujú. Bol to úmysel?
Pozri si, čo je najlepšie predávať do setTimeout, nájdeš tu na to veľa príkladov.
Pan X
Profil
_es
Promiň, ale nějak jsem nepochopil co si tím chtěl říct
_es
Profil
Pan X
Ktorý z tých troch riadkov si nepochopil?
V tom poslednom som konkrétnejšie myslel prvý argument setTimeout.
Myslíš, že bez toho odkazu na problém, ktorý si zmazal, ti bude niekto ochotnejší poradiť?
Aichi
Profil
to bude tím, že ti onmouseover nastane i kdyz v tom divu najedeš na tag menu, img, nebo p. Pokud nebudeš navěšovat ty dvě funkce přes addEventListener/attachEvent, tak s tím nic moc neuděláš. Pokud ano, v objektu event je vlastnost target/srcElement, která udává na jaké elementu vznikla. Takže ti bude ta událost bublat do toho DIVu a ty si jednoduchým porovnám v onmouseout zjistíš, zda vznikla na divu nebo jinde a podle toho se zachováš.
Chamurappi
Profil
Reaguji na Aichiho:
Pokud nebudeš navěšovat ty dvě funkce přes addEventListener/attachEvent, tak s tím nic moc neuděláš. Pokud ano, v objektu event je vlastnost target/srcElement, která udává na jaké elementu vznikla.
K té vlastnosti se může úplně stejně dostat i bez použití přiřazovacích metod, stačí předat event jako argument přímo v HTML atributu (a tím rovnou setře jednu nekompatibilitu prohlížečů).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0