Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][Mootools] Jeszcze raz pokazująca się animacja
Forum PHP.pl > Forum > Przedszkole
b_chmura
Witam

Zechcielibyście wejść na stronę http://www.informel.pl/~bchmura/alczyk_7/ i wejść np. na podstronę "logotypy".
Tam po najechaniu na którąś z prac pojawia się opis. Problem tkwi w tym, że jeśli najedzie się na prace a później na opis on pojawia się jeszcze raz.

Macie jakieś pomysły jak temu zapobiec?
matiit
W firefoksie 3.5 strona w ogóle nie mieści się w przeglądarce i nie da się nawet scrollować.
b_chmura
Możesz podać screena?
wiem, że nie chodzi pod IE... ale sam działam pod mozillą 3.5 i działa

Poprawiłem kod, działa również pod IE 7.

Fuck, próbowałem różne sposoby i mi nie wychodzi. Nic się nie orientujecie w tym temacie?

Pod IE 6 również wiec już z żadną przeglądarką nie powinno być problemu. Nie mniej jednak problem wciąż nie został rozwiązany...
franki01
Kiedyś miałem podobny problem i rozwiązałem go mniej więcej w ten sposób, że zadeklarowałem gdzieś na górze
Kod
var DescriptionEnabled = false;

A onmouseover i onmouseout przerobiłem w ten sposób:
Kod
            ArtWork[i].addEvent("mouseover",function(){

                if(!DescriptionEnabled) myFx.start('opacity', 0, 0.7);
                                DescriptionEnabled = true;
            });
            
            ArtWork[i].addEvent("mouseout",function(){

              myFx.start('opacity', 0);
                            DescriptionEnabled = false;
            });

Nie wiem tylko, czy w momencie przesuwania kursora z obrazka nad opis wywoływane jest onmouseout. Jeżeli tak, to sposób nie zadziała. Ewentualnie w podobny sposób można popróbować z setTimeout.
b_chmura
Buu skucha... nie działa.

Możesz zagłębić się w temat setTimeout?

EDIT:
Zrobiłem to w dość niesmaczny i myślę niewygodny sposób.
Div z opisem rozszerzyłem na cały obrazek, za background dałem gifa i ustawiłem pozycje tła, tekst przesunąłem paddingiem w dół. Niech to będzie chwilowym rozwiązaniem a wy jeśli możecie zaproponujcie bardziej elastyczne. Link dalej prowadzi do "popsutej" wersji.
franki01
Kod
            ArtWork[i].addEvent("mouseover",function(){
                            DescriptionEnabled = true;
                            setTimeout(function() {
                                if(DescriptionEnabled) myFx.start('opacity', 0, 0.7);
                            }, 1);
            });
            
            ArtWork[i].addEvent("mouseout",function(){
                            DescriptionEnabled = false;
                            setTimeout(function() {
                                if(!DescriptionEnabled) myFx.start('opacity', 0);
                            }, 1);
                            });

Pokazywanie i ukrywanie będzie następowało 1 milisekundę po zjechaniu lub najechaniu myszką. W tym czasie wartość DescriptionEnabled zdąży się zmienić na true/false. Nie zapomnij o var DescriptionEnabled = false; na górze. Ewentualnie ustaw opóźnienie na 10 milisekund.
b_chmura
Niestety, podany przez Ciebie sposób nie bangla.

Spróbuje coś pomodzić z tym setTimeout

EDIT:
Jestem zajebisty smile.gif
Domyślnie opisy są visibility: hidden;
Po wczytaniu ustawiam je na visible i opacity na 0.
Przy mauseover zmieniam by pojawianie zaczęło się od stanu w jakim jest a nie 0.

Czyli konkretniej: przed addEvent dodaję
Kod
el.setStyle('opacity', 0); // ustawia wszystkie opisy na visible i opacity 0.


a przy mauseover:
Kod
myFx.start('opacity', 0.7);


zamiast:
Kod
myFx.start('opacity', 0, 0.7);


Temat można zamknąć smile.gif

Pozdrawiam
Chmura B.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.