# 150: Hej projektanci, jeśli wiesz tylko jedną rzecz o JavaScript, to polecam - CSS-Tricks

Anonim

Czasami, aby rozpocząć podróż do nauki czegoś wielkiego i złożonego, musisz nauczyć się czegoś małego i prostego. JavaScript jest ogromny i złożony, ale możesz w niego wkroczyć, ucząc się małych i prostych rzeczy. Jeśli jesteś projektantem stron internetowych, myślę, że jest jedna rzecz, której możesz się nauczyć, a która jest niezwykle inspirująca.

To jest to, czego chcę, żebyś się nauczył: Kiedy klikniesz na jakiś element, zmień klasę na jakimś elemencie.

Sprowadzając to do absolutnych podstaw, wyobraź sobie, że mamy przycisk i element div:

 Click Me I'm an element 

Element div może mieć style podstawowe i może mieć style, jeśli ma określoną klasę:

div ( /* base styles */ ) div.yay ( /* styles when it has this class */ )

Wnikliwi CSS-Tricksters mogą uznać to za okazję do włamania się do pól wyboru, ale nie nad tym dzisiaj pracujemy.

Chcemy dołączyć do przycisku „detektor zdarzeń”: fragment kodu do „nasłuchiwania”, w naszym przypadku, zdarzeń kliknięcia, a kiedy to się stanie, uruchom więcej kodu.

Wiesz, jak w CSS musimy „wybierać” elementy, aby nadać im styl? Musimy to zrobić również w JavaScript, aby dołączyć nasz detektor zdarzeń. Utworzymy „odniesienie” do przycisku jako zmienną, na przykład:

var button = document.querySelector("button");

Teraz, gdy mamy odniesienie do przycisku, dołączymy ten detektor zdarzeń:

button.addEventListener("click", function() ( /* run code here, after the button is clicked. */ ));

A co chcemy zrobić w przypadku kliknięcia? Dodaj nazwę klasy do naszego div! Ale tak jak potrzebowaliśmy odwołania do przycisku, aby zrobić z nim coś, będziemy również potrzebować odwołania do elementu div. Zróbmy je jednocześnie, oto cały fragment kodu:

var button = document.querySelector("button"); var element = document.querySelector("div"); button.addEventListener("click", function() ( element.classList.toggle("yay"); ));

To wszystko, co chciałem ci pokazać. Po dodaniu CSS do tej klasy „yay” możemy wprowadzać i wyłączać div:

Zobacz artykuł Pen Click Something / Change Class autorstwa Chrisa Coyiera (@chriscoyier) na CodePen.

Skąd ta jedna rzecz?

Możliwości projektowania są nieograniczone, gdy kontrolujesz CSS i stan dowolnego elementu (jakie ma nazwy klas). Ukrywanie i ujawnianie rzeczy to oczywista moc, ale naprawdę może to być wszystko.

Zdobywanie kolejnych poziomów

Pamiętaj, że nie jesteś ograniczony do zmiany nazwy jednej klasy. Możesz zmienić wiele klas w jednym elemencie lub zmienić klasy w wielu elementach.

Przyjrzyj się bliżej właściwości classList. „Przełącz” nie jest jedyną opcją.

Podobnie jak HTML i CSS, JavaScript ma różne poziomy obsługi przeglądarek. Zapoznaj się z obsługą przeglądarki dla classList i dodaj addEventListener. Czy zgadzasz się z takim poziomem wsparcia dla swojego projektu? Jeśli nie, możesz zajrzeć do polyfillów, a nawet jQuery.

Użyliśmy zdarzenia „kliknięcia”, ale jest też mnóstwo innych. Inne zdarzenia myszy, przewijanie, klawiatura i nie tylko. Wiele setek.

Metoda, której użyliśmy do wyboru, to document.querySelector. Było to przydatne, ponieważ zwraca nam pojedynczy element do pracy. Dodatkowo selektory, które mu dajesz, są takie same jak selektory CSS. document.querySelector("#overlay .modal > h2");byłby uzasadnionym wyborem. Nie jest to jedyna metoda wyboru, istnieją inne, takie jak getElementById, querySelectorAll, getElementsByClassName i inne.

Oto przykład, w którym wybieramy kilka elementów nawigacyjnych i dołączamy moduł obsługi kliknięcia do wszystkich na raz:

Zobacz zajęcia dotyczące zmiany pióra w materiałach autorstwa Chrisa Coyiera (@chriscoyier) w witrynie CodePen.

Jeśli JavaScript, który napisaliśmy w naszym małym przykładzie, nie załadował się z jakiegokolwiek powodu, nadal mielibyśmy przycisk z napisem „Kliknij mnie”. Ale kliknięcie nie dałoby dużo, prawda? Może moglibyśmy wstawić ten przycisk za pomocą JavaScript, więc go nie ma, chyba że wiemy, że zadziała? Dobry pomysł, co? ;)