JavaScript

[JavaScript] JavaScript와 CSS

기록하는_사람 2022. 10. 14. 14:10

JavaScript와 CSS

📌 JavaScript와 CSS

: JavaScript에서 CSS 수정 가능. 

 

📄 h1을 클릭하면 텍스트가 green, tomato로 번갈아 색이 바뀌도록 하는 프로그램. 

📄 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css"/>
    <title>Momentum</title>
</head>
<body>
    <h1>Hello! This is title</h1>
    
    <script src="app.js"></script>
</body>
</html>

📄 style.css

body {
    background-color: beige;
}

h1 {
    color: green;
}

.clicked {
    color: tomato;
}

📄 app.js

const title = document.querySelector("h1");

function handleTitleClick() {
    const clickedClass = "clicked";

    if(title.className === clickedClass) {
        title.className = "";
    }
    else {
        title.className = clickedClass;
    }
}

title.addEventListener("click", handleTitleClick);

💡 .className

: 클래스 이름을 통째로 바꾸기 때문에 기존에 존재하던 클래스도 삭제될 위험이 있음. 

 

💡 .classList

- .classList.contains( [클래스이름] ) : 해당 클래스가 포함되어 있는지 확인.

- .classList.remove( [클래스 이름] ) : 해당 클래스 삭제.

- .classList.add( [클래스 이름] ) : 해당 클래스 추가.

 

📄 app.js

const title = document.querySelector("h1");

function handleTitleClick() {
    const clickedClass = "clicked";

    if(title.classList.contains(clickedClass)) {
        title.classList.remove(clickedClass);
    }
    else {
        title.classList.add(clickedClass);
    }
}

title.addEventListener("click", handleTitleClick);

💡 .toggle

: 클래스가 존재하는지 확인 후,

  클래스가 없으면 추가하고, 있으면 삭제함. 

 

📄 app.js

const title = document.querySelector("h1");

function handleTitleClick() {
    title.classList.toggle("clicked");
}

title.addEventListener("click", handleTitleClick);