accordion.js
10 kwietnia, 2007
accordion.js to ostatni plik wchodzący w skład biblioteki moo.fx , oferujący jednocześnie chyba najbardziej nas interesujący efekt – możliwość operowania na grupie elementów.
Dzięki klasie Fx.Accordion możemy w łatwy sposób stworzyć efekt, który polega na tym, że pokazywany jest rozwinięty jeden element, a w chwili kliknięcia na element rozwijający inny składnik całego efektu, poprzednio otwarty element jest zwijany. Tak więc zawsze otwarty jest (co najwyżej) jeden element. Myślę, że najlepiej zobrazuje to przykład:
Z kodu źródłowego tego przykładu można zauważyć, że ten efekt nie wymaga żadnej funkcji wykonywanej po kliknięciu – wystarczy tylko odpowiednio skonstruowane zdarzenie onload.
Aby efekt accordion zadziałał musimy mieć dostęp do elementów, które będą powodowały rozwijanie się treści, jak i samych rozwijanych elementów. Uzyskujemy go poprzez stworzenie zmiennych zawierające elementy danej klasy:
var zmienna = document.getElementsByClassName('nazwa_klasy’);
Musimy oczywiście stworzyć dwie takie zmienne – jedną zawierającą wszystkie elementy służące do rozwijania i drugą zawierającą wszystkie elementy rozwijane. Gdy posiadamy te zmienne możemy zapisać zmienną samego efektu accordion:
efekt = new Fx.Accordion(zmienna_elementow_rozwijajacych, zmienna_elementow_rozwijanych,{opcje_dodatkowe});
W ten sposób utworzony zostanie efekt, który mogliśmy obserwować w przykładzie.
Klasa Fx.Accordion posiada także kilka własnych opcji:
- alwaysHide wartość logiczna określająca czy wszystkie elementy mogą być zwinięte – domyślnie ma wartość false – zawsze jeden element jest rozwinięty,
- onActive definiuje funkcję uruchamianą wtedy, gdy element jest rozwijany (składnia opcji analogiczna do opcji onStart i onComplete),
- onBackground definiuje funkcję uruchamianą wtedy, gdy element jest zwijany (składnia opcji analogiczna do opcji onStart i onComplete),
- height wartość logiczna, określająca czy przy zwijaniu i rozwijaniu elementów będzie modyfikowana ich wysokość. Domyślna wartość true,
- opacity wartość logiczna, określająca czy przy zwijaniu i rozwijaniu elementów będzie modyfikowana ich przezroczystość. Domyślna wartość true,
- width wartość logiczna, określająca czy przy zwijaniu i rozwijaniu elementów będzie modyfikowana ich szerokość (uwaga – opcja ta jest niedopracowana – także w najnowszej wersji mootools, także mogą wystąpić problemy z jej wykorzystaniem). Domyślna wartość false.
Mała uwaga co do obramowań i paddingów – w wypadku efektu accordion nie stanowią one problemu dla modyfikacji wysokości elementu – po zwinięciu, element się rozwinie, ale należy pamiętać, że po zwinięciu pewna część elementu będzie nadal widoczna.
Myślę, że nie ma się co rozwodzić na dalszymi przykładami – zasada działania efektu jest prosta i znana – gdy dołączymy do tego możliwości zawarte w pozostałych plikach biblioteki (na przykład efekty związane z plikiem moo.fx.transitions.js) to nagle okaże się, że w tej małej bibliotece tkwią przeogromne możliwości :-)
Komentarze do wpisu "accordion.js":
1.
Patryk napisał(a):
27 lipca 2007, 03:26:36
Swietny tutorial!
2.
Adriano napisał(a):
19 września 2008, 22:56:18
Firefox wita mnie ostrzeżeniem:
http://www.dziudek.n3o.pl/moo.fx/accordion.js/accordion-1.html
Dziudek, sprawdź sobie to : )
3.
Dziudek napisał(a):
19 września 2008, 22:58:09
@Adriano – wiem, wiem – ktoś wykorzystał lukę w moim nieaktualizowanym Wordpressie i wrzucił jakiś kod. Ostatnio wywaliłem starego WP i zrobiłem przekierowanie na tego bloga. Mam nadzieję, że za parę dni zdejmą to ostrzeżenie :)
4.
Adriano napisał(a):
19 września 2008, 23:06:38
Aha, tak tylko uwagę chciałem zwrócić ;)
5.
Dziudek napisał(a):
19 września 2008, 23:09:49
@Adriano – nie no wiadomo, ja tu o użyciu JavaScript piszę, a ktoś wchodzi na stronę przykładu i widzi takie ostrzeżenie :D To ostrzeżenie zresztą już dość długo jest tylko wcześniej nie znałem jego przyczyny, dopiero niedawno zauważyłem, że w treści jednego z wpisów są jakieś iframe powstawiane dlatego zlikwidowałem bloga, bo aktualizować WP – to trochę bez sensu na porzuconym blogu ;)
6.
Adriano napisał(a):
19 września 2008, 23:14:23
No rozumiem ;)
A tak ogólnie to dzięki za te wszystkie kursy – bardzo się przydają, bo czasami to klienci dziwne pomysły mają i sam bym nie dał rady (nie moja działka) ;)
7.
zółtodziub napisał(a):
06 maja 2009, 21:29:56
A ja mam takie pytanie co do tego, co zrobić jakbym chciał żeby aktywny button (ten rozwinięty) był podświetlony?
Dodaj komentarz: