Zegar to jedno z podstawowych urządzeń w dzisiejszym życiu. Bez niego ciężko byłoby prowadzić biznesu czy uczęszczać na zajęcia w szkole. Choć w dzisiejszych czasach największą popularnością cieszą się zegarki cyfrowe to nie należy zapominać o zagarach analogowych, które pokazują czas przy pomocy dwóch lub trzech wskazówek na tarczy z liczbami od 1 do 12.
Na początku odczytywanie zegarka nie jest proste, dlatego warto ćwiczyć odczytywanie godzin, ale do tego jest potrzebny ktoś kto ustawi zegarek i sprawdzi odpowiedź. W tym przypadku komputer przychodzi z drobną pomocą. Opisane poniżej połączenie grafiki SVG oraz JavaScript pozwala na przygotowanie gadżetu na stronę wyświetlającego czas, ale pozwala też wygenerować zadania dla dziecka, aby nauczyć je odczytywać czas.
Przedstawiony dalej zegarek to początkowo zwykła grafika SVG. Oznacza to, że wygląd zegarka będzie można później bardzo łatwo zmienić i nie będzie potrzeby pisania nowego skryptu.
Pierwszy krokiem do stworzenia gadżet na stronę jest dokonanie pewnej zmiany w pliku SVG. Skrypt będzie można dopiero napisać wtedy, gdy wskazówki dostaną swoje identyfikatory tj. id. W tej implementacji wskazówka minutowa ma identyfikator wskminuta, a godzinowa wskgodzina. Zawartość tak przygotowanego pliku można dodać bezpośrednio do dokumentu HTML.
Kolejny etap polega teraz na dopisaniu odpowiedniego skryptu. Na początek warto napisać funkcję setTime(), która przyjmie dwa argumenty: hour i minute. Na podstawie argumentów zostaną wyliczone konkretne wartości obrócenia obiektu. Obracanie obiektu będzie się odbywać poprzez ustalenie wartości transform na rotate(..).
Oblicz w stopniach obrót wskazówki (2.) godzinowej i (3.) minutowej. (Oczywiście wartości 30 i 6 biorą się kolejno z podzielenia 360 na 12 i 60.) Następnie obliczone wartości są ustalane jako część wartości atrybutu transform do elementów (4.) wskgodzina oraz (5.) wskminuta. Przy ustalaniu obrotu rotate() podawane są trzy wartości: obrót (w stopniach) oraz punkt względem, którego obracana jest wskazówka. Punkt ten może się różnić w zależności narysowanego zegara, dlatego jeśli wskazówka zacznie uciekać należy poprawić w tych dwóch miejscach.
Teraz można przejść do napisania funkcji setActualTime(), która raz na minutę odświeży zegarek i ustawi aktualną godzinę.
(2.) Poberz aktualną datę i godzinę. (3.) Ustaw czas. (4.) Odśwież dopiero jako będzie taka potrzeba. (6.) Rozpoczęcie nieskończonej pętli odświeżania oraz wstępna aktualizacja godziny na zegarku. Oba napisane skrypty wystarczy
W pliku do pobrania został umieszczony przykładowy zegar razem z skryptem. Tak przygotowany zestaw wystarczy wkleić do szablonu, albo na dowolną stronę.