Javascript : toggle기능 만들기
5204 단어 JavaScriptJavaScript
toggle()메서드를 사용합니다.
DOMTokenList.toggle(token)
token: 내가 toggle하고자 하는 문자열(string)
DOMTokenList
공백으로 구분된 문자열로 표현된 데이터를 정렬하여 토큰 집합으로 만들어 집합을 조작하기 위한 메소드를 제공하는 유사배열 인터페이스이다.
HTML
<body>
<header class="toggle-box">
<button class="toggle-btn toggle-btn__night"></button>
</header>
<section class="bg night"></section>
</body>
CSS
:root {
--toggle-width: 70px;
--toggle-night-bg-color: rgb(205, 205, 205);
--toggle-day-bg-color: rgb(207, 224, 235);
--toggle-box-padding: 3px;
}
body {
width: 100vw;
height: 100vh;
}
.bg {
width: 100%;
height: 100%;
position: absolute;
z-index: -1;
top: 0;
left: 0;
overflow: hidden;
transition: all 400ms;
}
.night {
background: #000000;
}
.day {
background: rgb(238, 250, 255);
}
.toggle-box {
position: relative;
background-color: var(--toggle-day-bg-color);
border-radius: 20px;
width: var(--toggle-width);
height: 33px;
margin: 40px auto;
z-index: 100;
display: flex;
align-items: center;
padding: var(--toggle-box-padding);
overflow: hidden;
}
.toggle-box::after {
content: "";
position: absolute;
z-index: 10;
background-color: var(--toggle-night-bg-color);
border-radius: 20px;
width: var(--toggle-width);
height: 33px;
padding: var(--toggle-box-padding);
transform: translateX(calc(-100% - var(--toggle-box-padding)));
transition: all 400ms;
}
.toggle-box__day::after {
content: "";
position: absolute;
z-index: 10;
background-color: var(--toggle-night-bg-color);
border-radius: 20px;
width: var(--toggle-width);
height: 33px;
padding: var(--toggle-box-padding);
transform: translateX(calc(0px - var(--toggle-box-padding)));
transition: all 400ms;
}
.toggle-btn {
position: relative;
z-index: 20;
background-color: rgb(255, 255, 255);
border: none;
border-radius: 15px;
width: 28px;
height: 28px;
cursor: pointer;
transition: transform 400ms;
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.4);
}
.toggle-btn__night {
transform: translateX(var(--toggle-box-padding));
}
.toggle-btn__day {
transform: translateX(
calc(var(--toggle-width) / 2 + var(--toggle-box-padding))
);
}
Javascript
const bgToggleBox = document.querySelector(".toggle-box");
const bgToggleBtn = document.querySelector(".toggle-btn");
const bg = document.querySelector(".bg");
//toggle로 class를 추가,제거한다.
toggleMainBg();
function toggleMainBg() {
bgToggleBtn.addEventListener("click", () => {
const bgClasses = bg.classList;
bgClasses.toggle("night");
bgClasses.toggle("day");
});
}
//toggle button을 클릭하면, 버튼이 이동하고, toggle box의 배경색이 변한다.
handleToggleBtn();
function handleToggleBtn() {
bgToggleBtn.addEventListener("click", () => {
const bgToggleBtnClasses = bgToggleBtn.classList;
const bgToggleBoxClasses = bgToggleBox.classList;
bgToggleBtnClasses.toggle("toggle-btn__night");
bgToggleBtnClasses.toggle("toggle-btn__day");
bgToggleBoxClasses.toggle("toggle-box__day");
});
}
이 외에도 toggle과 관련하여
- Element.toggleAttribute()
- HTMLDetailsElement의 toggle event
를 사용할 수 있습니다.
Author And Source
이 문제에 관하여(Javascript : toggle기능 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ontime1800/Javascript-toggle기능-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)