🗓 진행일: 3월 11일
📎 3.6 ~ 3.8
app.js
const h1 = document.querySelector("div.hello:first-child h1");
function handleTitleClick() {
const currentColor = h1.style.color;
let newColor;
if(currentColor === "blue") {
newColor = "tomato";
} else {
newColor = "blue";
}
h1.style.color = newColor;
}
h1.addEventListener("click", handleTitleClick);
생긴 거 변경하는 건 css 파일에서 하자
각자의 역할이 있으니까, UI 변경은 css 파일에서 하도록 할 순 없을까?
--> 클래스 이름으로 관리하기
--> 클래스 이름을 가져와서 그게 맞으면, 지우고, 없으면 넣고
app.js
function handleTitleClick() {
const clickedClass = "clicked";
if(h1.className === clickedClass) {
// 로직
} else {
// 로직
}
}
style.css
.clicked {
color: tomato;
}
index.html
<body>
<div class="hello">
<h1 class="sexy-font">Click me!</h1>
</div>
</body>
근데 만약에 내가 갖고 있는 클래스가 여러 개라면?
그걸 지웠다가 다시 넣을 건가요?
--> classList를 사용해서 갖고 있는 class를 array로 가져온다
--> contains로 포함되어 있는지 체크!
app.js
function handleTitleClick() {
const clickedClass = "clicked";
if(h1.classList.contains(clickedClass)) {
h1.classList.remove(clickedClass);
} else {
h1.classList.add(clickedClass);
}
}
그걸 걍 쉽게 해결하는 방법 = toggle
function handleTitleClick() {
h1.classList.toggle("clicked");
}