Wanna be Brilliant Full-Stack Developer

바닐라JS 크롬 앱 만들기 CSS in JavaScript 본문

Front-End

바닐라JS 크롬 앱 만들기 CSS in JavaScript

Flashpacker 2022. 2. 11. 20:42


목표

유저가 title을 클릭했을떄 title을 파란색으로 칠해주고 내가 한번더 클릭하면 색깔을 토마토색으로 바꾸고 싶다. 

const h1 =  document.querySelector("div.hello:first-child h1"); 

function handleTitleClick() {
    h1.style.color = "blue";
}


h1.addEventListener("click", handleTitleClick);

여기서 하고 싶은건 console.log(h1.style.color);을 하여서 만약 h1.style.color가 blue라면 이걸 tomato로 변경해주세요! 

만약 h1.style.color 가 blue 색깔이 아니라면 blue로 변경해주세요 라고하는것! 

const h1 =  document.querySelector("div.hello:first-child h1"); 

function handleTitleClick() {            //h1의 컬러 값이 blue와 일치하는지 확인!
    if(h1.style.color === "blue") {     // 여기서 ===는 값이 일치함을 확인하는것!
        h1.style.color = "tomato";   //여기서 하는 일은 이 h1의 color를 tomato로 바꿔주는것! 
    }else {
        h1.style.color = "blue";
    }
}


h1.addEventListener("click", handleTitleClick);

여기서 우리는 이 코드를 더 개선해서 더 깔끔하게 만들 수 있다!

이제 h1.style.color을 이렇게 많이 호출하기 보다는 먼저, 이  color 현재 상태를 저장하는것을 해보려고한다! 

const h1 =  document.querySelector("div.hello:first-child h1"); 

function handleTitleClick() {            //h1의 컬러 값이 blue와 일치하는지 확인!
        const currentColor = h1.style.color;
    if(currentColor === "blue") {     // 여기서 ===는 값이 일치함을 확인하는것!
        currentColor = "tomato";   //여기서 하는 일은 이 h1의 color를 tomato로 바꿔주는것! 
    }else {
        currentColor = "blue";
    }
}


h1.addEventListener("click", handleTitleClick);

const로 h1.style.color( h1의 색상) 의 상태를 currentColor에 저장!

그리고 밑에 currentColor을 두번씩 적는것 대신에 let으로 변수를 하나 생성하려고한다!

여기서 const 와 let의 차이점을 기억해야한다! let은 값이 변경될 수 있다는거다!

const h1 =  document.querySelector("div.hello:first-child h1"); 

function handleTitleClick() {            //h1의 컬러 값이 blue와 일치하는지 확인!
        const currentColor = h1.style.color;
        let newColor;
    if(currentColor === "blue") {     // 여기서 ===는 값이 일치함을 확인하는것!
        newColor = "tomato";   //여기서 하는 일은 이 h1의 color를 tomato로 바꿔주는것! 
    }else {
        newColor = "blue";
    }
    h1.style.color = newColor;
}


h1.addEventListener("click", handleTitleClick);

let으로 newColor라는 변수를 선언! newColor는 아무것도 없는 비어있는 let의 변수다!

이제 만약에 currentColor가 blue 라면 newColor는 tomato로 변경해줄것이다.

하지만 newColor를 변경해봤자 , 우리의 h1의 color에는 아무 영향 도 미치지 않기 떄문에 

그래서 우리는 h1.style.color(h1의 색상) 의 상태를 newColor 라고 정해줄것이다!

 

너가 만약에 element의 stlye을 Javascript에서 변경하는걸 별로 좋아하지 않으면? 

다른언어들과 섞이는것을 좋아하지 않으면?

CSS는 js파일에서도 할수 있지만 Css 파일에서 하는걸 더 선호하면 어떻게 JS와 CSS가 커뮤니케이션을 할것인지 다음 게시글에서 올리도록하겠습니다!

'Front-End' 카테고리의 다른 글

바닐라 JS 크롬앱만들기 CSS in Javascript #3  (0) 2022.02.11
바닐라 JS 크롬앱 만들기 CSS in JavaScript #2  (0) 2022.02.11
JavaScript Events 2  (0) 2022.02.11
JavaScript Event  (0) 2022.02.11
JavaScript Searching For Elements!  (0) 2022.02.10