Zastosowania właściwości wydarzenia (Wersja Wideo)
-
0:01 - 0:05Mam tu stronę z portretem Winstona.
Robi się zimno, -
0:05 - 0:09w dodatku Winston się starzeje,
więc chciałby mieć brodę. -
0:09 - 0:12Mogłabym narysować ją sama,
ale będzie fajniej, -
0:13 - 0:16jeśli brodę będą dorabiać
użytkownicy. Taką, jak zechcą: -
0:17 - 0:20długą, a może parodniowy zarost...
-
0:21 - 0:22Jak to zrobić?
-
0:24 - 0:29Jeden sposób - to dodać nasłuch
zdarzenia do "mouseMove" na obrazie. -
0:29 - 0:31Funkcja zostanie przywołana zawsze,
-
0:31 - 0:34gdy użytkownik przesunie myszkę
po twarzy Winstona. -
0:35 - 0:38Zróbmy to,
korzystając z nowo nabytej wiedzy. -
0:38 - 0:41Krok pierwszy
- to znaleźć element, obraz. -
0:41 - 0:44"var face = document"...
-
0:45 - 0:48"getElementById("face")".
-
0:49 - 0:50Ładne ID!
-
0:51 - 0:54Krok drugi:
zdefiniować wywołanie zwrotne. -
0:54 - 0:58Zaczniemy od czegoś prostego,
żeby zobaczyć, czy działa, -
0:59 - 1:02a potem sprawimy,
że funkcja będzie robić więcej. -
1:02 - 1:06"document.getElementById("message")"...
-
1:07 - 1:12".textContent + = "mooove".
-
1:12 - 1:13Dobrze.
-
1:13 - 1:18Krok ostatni - to połączyć to z tym,
-
1:18 - 1:22dla pewności, że funkcja zostanie
przywołana po zdarzeniu "mouseMove". -
1:22 - 1:28Napiszemy więc: "face.
addEventListener("mousemove"), -
1:28 - 1:32a potem dodamy nazwę funkcji,
"onMouseMove". -
1:32 - 1:34Teraz zatrzymajcie film
-
1:34 - 1:39i spróbujcie przesunąć myszkę
po twarzy Winstona. Widzicie tekst? -
1:39 - 1:41Okej.
-
1:41 - 1:44Miejmy nadzieję,
że widzieliście, jak to działa. -
1:44 - 1:47Ale nie to ma robić
nasz detektor zdarzeń. -
1:47 - 1:50Chcemy, by rysował, a nie pisał tekst.
-
1:50 - 1:53Jak się rysuje
na stronie internetowej? -
1:54 - 1:57Możemy wpisać tag "canvas"
-
1:57 - 2:01i rysować na nim piksele,
jak w programach z Processing JS. -
2:01 - 2:03Ale my rysujemy tylko brodę,
-
2:04 - 2:07czyli czarne kropki.
-
2:07 - 2:10Stworzymy więc "div"
dla każdej kropki -
2:11 - 2:14i umieścimy je za pomocą
pozycjonowania absolutnego. -
2:14 - 2:18Pokażę to na przykładzie
jednego włoska. -
2:18 - 2:21Zrobię "div" z klasą "broda".
-
2:22 - 2:26I mam dobre CSS
do nadania stylu tej brodzie. -
2:26 - 2:28Wpiszę to tutaj.
-
2:30 - 2:32Poprawmy to.
-
2:32 - 2:37Jak widać - czarne tło,
5 pikseli na 5... -
2:37 - 2:41Broda powinna być okrągła.
-
2:41 - 2:45Używamy schematu
pozycjonowania absolutnego. -
2:45 - 2:48Teraz "div" pojawia się pod obrazem.
-
2:49 - 2:51Jak zrobić, by pokazało się na twarzy?
-
2:52 - 2:54Stosujemy pozycjonowanie absolutne,
-
2:54 - 2:57czyli powinniśmy użyć
własności "top" i "left", -
2:57 - 3:02by określić,
gdzie ma się znaleźć broda. -
3:02 - 3:04Napiszmy: "top: 80px",
-
3:04 - 3:08a potem "left:15px".
-
3:08 - 3:09Pięknie!
-
3:10 - 3:14Skoro to działa w HTML,
niech zadziała też w JavaScript, -
3:14 - 3:19by użytkownik dynamicznie tworzył "div"
za każdym razem, gdy poruszy myszką. -
3:19 - 3:23Wracamy do funkcji
wywołania zwrotnego. -
3:23 - 3:25Po pierwsze, tworzymy "div",
-
3:25 - 3:31co możemy zrobić funkcją
"document.createElement()". -
3:31 - 3:34Teraz będzie to "div".
-
3:34 - 3:36Po drugie, dodajemy tę klasę:
-
3:36 - 3:39beard.className = "beard".
-
3:39 - 3:42Mamy więc "div",
które unosi się w przestrzeni. -
3:42 - 3:46Ostatni krok
- przyłączyć to do treści. -
3:47 - 3:50No dobrze.
Zrobiliśmy w JavaScript to, -
3:50 - 3:54co wcześniej w HTML,
więc HTML możemy już skasować. -
3:55 - 3:59Zatrzymajcie odtwarzanie
i kliknijcie na Winstona. -
3:59 - 4:01Zobaczcie, co się stanie.
-
4:03 - 4:07Widzieliście, że pokazał się zarost?
A próbowaliście kliknąć kilka razy? -
4:07 - 4:11Jeśli tak, to zauważyliście,
że 2. kliknięcie niczego nie zmieniło, -
4:11 - 4:14a przynajmniej tak wam się zdawało.
-
4:14 - 4:18To dlatego, że każde "div"
ma te same właściwości "góra" i "lewo". -
4:18 - 4:21Nowe wersje zbierają się na starych.
-
4:21 - 4:26Chcemy, żeby "div" pokazywało się tam,
gdzie akurat jest myszka użytkownika. -
4:26 - 4:30Ale jak się tego dowiemy?
-
4:31 - 4:35Otóż przeglądarka
zapisuje wiele informacji, -
4:35 - 4:38gdy nastąpi zdarzenie użytkownika.
Np. gdzie to się stało. -
4:38 - 4:40Przeglądarka podaje tę informację,
-
4:40 - 4:43gdy przywoła
funkcję z detektora zdarzeń. -
4:43 - 4:47Ale skąd weźmiemy
te fantastyczne informacje? -
4:47 - 4:50Dla podpowiedzi - jedna litera.
-
4:52 - 4:56"e" to obiekt
z informacjami o zdarzeniu. -
4:56 - 4:59Przeglądarka wysyła go
jako 1. argument, -
4:59 - 5:02gdy nastąpi wywołanie zwrotne
detektora zdarzeń. -
5:02 - 5:06Nie potrzebowaliśmy tego przedtem,
więc nie pisałam list argumentów. -
5:06 - 5:09Ale skoro będziemy
tego używać, nadam nazwę, -
5:09 - 5:12żeby było łatwo
rozpoznać to w funkcji. -
5:12 - 5:16Pamiętacie, że w JS można przywołać
funkcję z wieloma argumentami, -
5:16 - 5:19nawet jeśli funkcja
z żadnego nie korzysta. -
5:19 - 5:23Zawsze otrzymywaliśmy te informacje,
tylko o tym nie wiedzieliśmy. -
5:23 - 5:29Teraz loguję "e": console.log(e).
-
5:29 - 5:32Zatrzymajcie film, kliknijcie
na Winstona i zobaczcie konsolę. -
5:32 - 5:37Powinien tam być zalogowany obiekt
zdarzenia. Można przejrzeć właściwości. -
5:39 - 5:44Są tu dwie właściwości,
które szczególnie nas interesują: -
5:44 - 5:46"clientX" i "clientY".
-
5:46 - 5:48Zapisują "x" i "y" zdarzenia.
-
5:48 - 5:51Użyjemy tego,
próbując pozycjonować brodę. -
5:51 - 5:55Niech góra brody
-
5:55 - 5:59równa się "e.clientY",
-
5:59 - 6:03plus "px" - "piksel", czyli jednostka.
-
6:03 - 6:06A lewa strona to:
-
6:07 - 6:10"e.clientX" plus jednostka.
-
6:11 - 6:14Teraz przerwijcie
i spróbujcie pojeździć myszką. -
6:15 - 6:17Narysujcie Winstonowi brodę.
-
6:18 - 6:22Fajnie, co?
Pewnie już wyobrażacie sobie zabawę -
6:22 - 6:25i malowanie w aplikacjach
za pomocą "clientX" i "clientY". -
6:26 - 6:31Jak widzieliście, w konsoli jest sporo
innych własności obiektu zdarzenia. -
6:31 - 6:35Najpraktyczniejsze są
te związane z klawiaturą. -
6:35 - 6:39Znajdziecie klawisze, które wciskał
użytkownik w chwili zdarzenia -
6:40 - 6:45i użyjecie ich do stworzenia interfejsu
dostępnego z klawiatury lub fajnej gry. -
6:45 - 6:47Och, i jeszcze jedno.
-
6:47 - 6:50Nie musicie nazywać
tego argumentu "e". -
6:50 - 6:53To typowe,
ale niektórzy projektanci stron -
6:53 - 6:58piszą "evt" lub "event".
-
6:58 - 7:02Nieważne, jaką wybierzecie nazwę,
oby odnosiła się do 1. argumentu, -
7:02 - 7:08który przeglądarka wprowadza w funkcję,
a potem wy możecie się do tego odwołać. -
7:10 - 7:12Jeśli macie z tym kłopot,
-
7:12 - 7:16użyjcie polecenia "console.log",
by debugować. -
7:16 - 7:21Jeśli jesteście projektantem stron,
konsola to wasza przyjaciółka!
- Title:
- Zastosowania właściwości wydarzenia (Wersja Wideo)
- Description:
-
To tylko zapis naszych interaktywnych sesji poświęconych kodowaniu, stworzony by ułatwić ich przełożenie na inne języki.
Polecamy obejrzenie oryginalnej sesji na Khan Academy, gdzie możecie zatrzymać sesje, by edytować własny kod, jak również zobaczyć zapis kodu w wyższej rozdzielczości:
http://www.khanacademy.org/computer-programming - Video Language:
- English
- Duration:
- 07:23
Lech Mankiewicz edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) | ||
Dominik Kamiński edited Polish subtitles for Using the event properties (Video Version) |