[JS]バニラJavaScript-切り替え

8374 ワード

<入る前に>
Javascript Part Threeビデオの3.8 CSSを表示および学習します.
記録された内容.
クリックすると文字の色が2になります
/*3.6 CSS in Javascript*/
const h1 = document.querySelector(".hello h1");

function handleTitleClick(){
    const currentColor = h1.style.color;
    let newColor;
    if(currentColor ==="blue") {
        newColor = "tomato";
    } else {
        newColor = "blue";
    }
    h1.style.color = newColor; //맘에 안드는 코드 css 코드이기 때문
}

h1.addEventListener("click", handleTitleClick);
より良いコードに置き換える
/*3.6 CSS in Javascript*/

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


function handleTitleClick(){
    const clickedClass = "clicked"; //string을 변수에 저장하면 오류가 떠도 에러를 잡아준다.
    if (h1.className === clickedClass) {
      h1.className = "";
    } else {
      h1.className = clickedClass;
    } 
}


// title에 click 이벤트가 발생하면 handleTitleClick 함수가 동작되길 원해!
h1.addEventListener("click", handleTitleClick);

h1.addEventListener("click", handleTitleClick);
cssにのみスタイルが加わったため,より簡潔なコードとなった.
body {
    background-color: rgb(255, 233, 199);
}

h1 {
    color : cornflowerblue;
    transition: color .5s ease-in-out;
}

.clicked {
    color: tomato;
}

toggle
質問:フォントを追加したh 1にフォントを保持し、クリック活動もできます!
理解:

  • classListではclassリストを使用できます
    classNameは、以前のcalssにかかわらず、すべてのものを置き換えます.

  • classListでは、HTML要素のクラスコンテンツを操作できます.

  • containsは、指定したclassがHTML要素のclassに含まれているかどうかを示します.

    タグが存在する場合、スイッチ関数はタグを削除します
    トークンがない場合は、トークンを追加します.
    LIKEスマートフォンの右ボタンと同じです.(画面開閉機能)
    ex)toggle h 1のclassListでclickedが既に存在することを確認し、
    あればtoggle clickedを外します
    class nameが存在しない場合、toggleはclass nameを追加します.
  • const clickedClass = "clicked";
    if(h1.classList.contains(clickedClass)){
        h1.classList.remove(clickedClass);
    } else {
        h1.classList.add(clickedClass);
    }
    
    上のコードは下の切り替えコードと同じです.
    すぐに切り替えがいいh1.classList.toggle("clicked");英文摘要:If forceは指定されていません.「切替」token、存在する場合は削除し、存在しない場合は追加します.If force is true, adds token
    ->存在する場合はスイッチを削除し、存在しない場合はスイッチを追加します.