안녕하세요! 오늘은 JavaScript에서 CSS 클래스를 보다 유용하게 다루는 방법을 배운 내용을 정리해보겠습니다.
특히, classList.toggle()을 활용하여 스타일을 동적으로 변경하는 방법을 집중적으로 살펴보겠습니다.
기본적으로 classList.toggle()은 특정 클래스를 추가하거나 제거하는 기능을 합니다.
element.classList.toggle("class-name");
아래 코드에서는 사용자가 <h1> 요소를 클릭할 때마다 파란색(cornflowerblue)과 토마토색(tomato) 으로 번갈아 변경됩니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Momentum</title>
</head>
<body>
<div class="hello">
<h1 class="sexy-font">grap me</h1>
</div>
<script src="app.js"></script>
</body>
</html>
body {
background-color: #f5f5dc;
}
h1 {
color: cornflowerblue;
transition: color 0.5s ease-in-out;
}
.active {
color: tomato;
}
.sexy-font {
font-style: italic;
}
const h1 = document.querySelector("div.hello:first-child h1");
function handMouseenter() {
h1.classList.toggle("active");
}
h1.addEventListener("click", handMouseenter);
기존의 classList.add()와 classList.remove()를 사용하면 다음과 같이 코드가 길어질 수 있습니다.
function handMouseenter() {
const clickedClass = "active";
if (h1.classList.contains(clickedClass)) {
h1.classList.remove(clickedClass);
} else {
h1.classList.add(clickedClass);
}
}
하지만, classList.toggle()을 사용하면 이 모든 과정을 한 줄로 줄일 수 있습니다!
function handMouseenter() {
h1.classList.toggle("active");
}
✅ 더 깔끔하고 직관적인 코드 작성이 가능해집니다.
아래 코드를 활용하면 버튼 클릭 시 전체 배경색을 변경하는 기능을 추가할 수 있습니다.
const body = document.body;
const toggleBtn = document.createElement("button");
toggleBtn.innerText = "Change Background";
document.body.appendChild(toggleBtn);
toggleBtn.addEventListener("click", function() {
body.classList.toggle("dark-mode");
});
.dark-mode {
background-color: black;
color: white;
}
오늘 배운 내용을 정리하면:
✅ classList.toggle()을 사용하면 CSS 클래스를 간단하게 추가/제거할 수 있다.
✅ 기존 classList.add() / classList.remove() 방식보다 코드가 간결하다.
✅ 클릭 이벤트를 활용하여 동적인 스타일 변경이 가능하다.
✅ 버튼을 추가하여 배경색을 변경하는 등 다양한 기능을 적용할 수 있다.
JavaScript를 활용한 간단한 로그인 기능 구현하기 (1) | 2025.03.03 |
---|---|
JavaScript로 CSS 스타일 변경하기 (1) | 2025.02.17 |
자바스크립트 이벤트 리스너 심화: window 객체 활용하기 (1) | 2025.02.16 |
자바스크립트 이벤트 리스너(Event Listener) 기초 배우기 (1) | 2025.02.16 |
자바스크립트로 HTML 제목(title) 변경하기 (2) | 2025.02.10 |