Jak prosto zmienić rozmiar zawartości strony z użyciem JavaScript i CSS?
Coraz bardziej powszechną metodą, ułatwiającą przeglądanie stron internetowych osobom niedowidzącym, staje się wprowadzanie możliwości zmiany rozmiaru ich zawartości. Ponadto, sposób ten ułatwia dostosowanie wielkości treści do preferencji potencjalnego klienta. W tej poradzie pokażemw prosty sposób, jak uzyskać tytułowy efekt.
Zdefiniowanie problemu
Najczęściej realizowany jest on poprzez utworzenie kilku przycisków, dzięki którym cała strona lub poszczególna treść zmienia rozmiar, krój lub wygląd czcionek, czy innych, możliwych do skalowania elementów. Często spotykanym rozwiązaniem jest wyświetlenie użytkownikowi kilku, różnej wielkości, liter A.
Darmowym skryptem obsługującym ww. efekt jest trzecia wersja phpBB.
Rysunek 1: przykładowa nawigacja.
Teoria implementacji
Nasz sposób będzie bazował na dwóch elementach: utworzeniu arkuszy stylów definujących wygląd poszczególnych stopni wielkości oraz napisanie funkcji „aktywującej" jeden z nich, w zależności od intencji użytkownika.
Załóżmy więc, że w naszym przykładzie będziemy chcieli wyświetlać treść w czterech różnych trybach (jak na rysunku 1). Możemy stworzyć więc pięć kaskadowych arkuszy stylów, gdyż główny a zarazem bazowy będzie odpowiadał właściwościom zgodnym dla każdej metody wyświetlania. Znacznikom link, załączającym zewnętrzny CSS, nadamy także specjalne tytuły, dzięki którym będziemy w stanie rozpoznać je w niżej opisywanym skrypcie JavaScript.
<link rel="stylesheet" type="text/css" href="styles.css" /> <!-- styl bazowy -->
<link rel="stylesheet" type="text/css" href="styles-normal.css" title="normal_size" /> <!-- styl normalnej wielkości, ładowany domyślnie -->
<!-- alternatywne arkusze -->
<link rel="alternate stylesheet" type="text/css" href="styles-verysmall.css" title="verysmall_size" />
<link rel="alternate stylesheet" type="text/css" href="styles-small.css" title="small_size" />
<link rel="alternate stylesheet" type="text/css" href="styles-large.css" title="large_size" />
Zwróćmy uwagę także na zawartość atrybutów rel trzech ostatnich linijek. Zawierają one frazy alternate wskazujące na alternatywne użycie tychże plików.
Przechodząc do kwestii dynamicznej zmiany wyglądu, tworzymy funkcję JS, która w zależności od przekazanego identyfikatora będzie wymuszać korzystanie z odpowiedniego arkusza. Przekazywane ID jest, co do zawartości, jedną z ww. wartości atrybutu title tagu link.
Rysunek 2: zasada działania.
Tak oto, w specjalnie przygotowanej pętli, przechodzącej przez wszystkie alternatywne znaczniki link posiadające atrybut title, sprawdzamy, czy któryś z tych tytułów jest tym, który przekazujemy w parametrze naszej funkcji.
function changeContentSize(title) {
var handler, i = 0;
while( handler = document.getElementsByTagName('link')[i++] ) // sprawdzenie wszystkich tagów <link ...>
{
if( handler.getAttribute('title') && handler.getAttribute('rel').indexOf('stylesheet') != -1 ) // testowanie tylko alternatywnych i posiadających atrybut tytuł
{
if( handler.getAttribute('title') == title ) // jeżeli użytkownik wywołał istniejący arkusz stylów aktywujemy go i skaczemy do kolejnej iteracji
{
handler.disabled = false;
continue;
}
handler.disabled = true; // w przeciwnym razie
}
}
}
Na koniec, pozostaje podpiąć powyższy skrypt.
<script type="text/javascript" src="skrypt.js"></script>
«poprzednia 1 2 następna »
Polecamy
Reklama
Popularne
Firefox 10 już jest. Wiele atrakcji dla programistów, użytkownicy raczej nic nie zauważą
9
Źle się dzieje z Chrome, ze stabilnością coraz gorzej. Gdzie się podziała słynna izolacja procesów?
26
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
13
Nowa polityka prywatności Google'a już za miesiąc wejdzie w życie. Mamy się czego bać?
16
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Rząd Tuska zablokował dostęp do tańszych leków z internetowych aptek
61
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Społeczność
WebDev Z tego wynika, że zmienią się tylko serwery z którymi przeglądarka łączy...
agilob Ale folder bez nazwy się da założyć :P
zetesha Apple nie zrezygnował z PPC całkiem ponieważ posiada P.A. Semi, która to...
pablo1919191 Thunderbolt to jest technolgia intela wiec skora appel wpakowal jako...
BartekBb Już wiem skąd kopiujecie artykuły, bo zrobiliście ten sam błąd co na...
Marr moglibyście się zdecydować. W newsach podajecie, że systemy wymiany (czyli...
setXYZ I jeszcze warto poczytać co o tym myśli sam MS http://webhosting.pl/Koniec...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |










