Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][Mootools] Jeszcze raz pokazująca się animacja, Problem rozwiązany!
b_chmura
post 5.09.2009, 21:32:26
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


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?

Ten post edytował b_chmura 6.09.2009, 15:41:46
Go to the top of the page
+Quote Post
matiit
post 5.09.2009, 21:41:19
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


W firefoksie 3.5 strona w ogóle nie mieści się w przeglądarce i nie da się nawet scrollować.
Go to the top of the page
+Quote Post
b_chmura
post 6.09.2009, 00:53:50
Post #3





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
franki01
post 6.09.2009, 02:48:56
Post #4





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.

Ten post edytował franki01 6.09.2009, 02:51:10
Go to the top of the page
+Quote Post
b_chmura
post 6.09.2009, 14:01:05
Post #5





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
franki01
post 6.09.2009, 14:12:54
Post #6





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
b_chmura
post 6.09.2009, 15:38:14
Post #7





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


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.

Ten post edytował b_chmura 6.09.2009, 15:43:48
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 00:49