μλ°μ€ν¬λ¦½νΈ : κ²μ ν¨κ³Ό : includes()
μλ°μ€ν¬λ¦½νΈμ λ€μν ν¨κ³Όλ€ μ€, ν΄λΉνλ λ¬Έμμ΄μ μ°Ύμ μ μλ κ²μ ν¨κ³Όμ λλ€. μ΄λ²μλ includes() λ©μλλ₯Ό μ΄μ©νμ¬ CSSμ λ€μν μμ±μ κ²μν μ μλ μΉμ¬μ΄νΈλ₯Ό μμ ν΄ λ³΄λλ‘ νκ² μ΅λλ€.
HTML μμ€
HTMLλ‘ λΌλλ₯Ό λ¨Όμ μ‘μμ£Όμμ΅λλ€. ν€λ μμμλ λ΄λΉκ²μ΄μ λ©λ΄λ₯Ό, λ©μΈ μμμλ κ²μμ°½, νμ λͺ©λ‘λ€μ μμ±ν΄ μ£Όμμ΅λλ€. κ°κ°μ νμ λͺ©λ‘μλ data-typeμ μΆκ°ν΄ μ£Όμ΄, μ λλ©μ΄μ , 보λ λ±μ μ ν μ΄λ¦μ κ²μν΄λ κ²°κ³Όκ°μ΄ λνλλλ‘ μμ ν΄ μ£Όμμ΅λλ€. μλ μμ€λ λ©μΈ μμμ HTML μμ€λ‘, λλ¨Έμ§ μμμ μμ€λ νλ¨μ 'μλ³Έ μμ€ λ³΄κΈ°' λ²νΌμ ν΄λ¦νλ©΄ νμΈν μ μμ΅λλ€.
<main id="main">
<div class="search__wrap">
<span>includes()λ₯Ό μ΄μ©νμ¬ κ²μνκΈ°</span>
<h1>CSS μμ± κ²μνκΈ°</h1>
<div class="search__box">
<label for="search">κ²μνκΈ°</label>
<input type="text" id="search" placeholder="CSS μμ± λ° μ νμ μ
λ ₯ν΄ μ£ΌμΈμ">
</div>
<div class="search__info">
<div class="type">νλ μ€, μ λλ©μ΄μ
, λ°±κ·ΈλΌμ΄λ, 보λ λ± μ νλ³λ‘ κ²μν΄ λ³΄μΈμ!</div>
<div>μ 체 μμ± κ°―μ : <span class="num">0</span></div>
</div>
<div class="search__list">
<div class="css">
<ul>
<li data-name="align-content" data-type="νλ μ€"><strong>align-content</strong> : μ½ν
μΈ μμ΄ν
μ μνκ΄κ³ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="align-items" data-type="νλ μ€"><strong>align-items</strong> : μ½ν
μΈ μμ΄ν
μ λ΄λΆ μνκ΄κ³ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="align-self" data-type="νλ μ€"><strong>align-self</strong> : κ°λ³μ μΈ μ½ν
μΈ μμ΄ν
μ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="all" data-type="κΈ°ν"><strong>all</strong> : μμμ μμ±μ μ΄κΈ°ν λλ μμμ μ€μ ν©λλ€.</li>
<li data-name="animation" data-type="μ λλ©μ΄μ
"><strong>animation</strong> : μ λλ©μ΄μ
κ³Ό κ΄λ ¨λ μμ±μ μΌκ΄μ μΌλ‘ μ€μ ν©λλ€.</li>
<li data-name="animation-delay" data-type="μ λλ©μ΄μ
"><strong>animation-delay</strong> : μ λλ©μ΄μ
μ§μ° μκ°μ μ€μ ν©λλ€.</li>
<li data-name="animation-direction" data-type="μ λλ©μ΄μ
"><strong>animation-direction</strong> : μ λλ©μ΄μ
μμ§μ λ°©ν₯μ μ€μ ν©λλ€.</li>
<li data-name="animation-duration" data-type="μ λλ©μ΄μ
"><strong>animation-duration</strong> : μ λλ©μ΄μ
μμ§μ μκ°μ μ€μ ν©λλ€.</li>
<li data-name="animation-fill-mode" data-type="μ λλ©μ΄μ
"><strong>animation-fill-mode</strong> : μ λλ©μ΄μ
μ΄ λλ νμ μνλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="animation-iteration-count" data-type="μ λλ©μ΄μ
"><strong>animation-iteration-count</strong> : μ λλ©μ΄μ
μ λ°λ³΅ νμλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="animation-name" data-type="μ λλ©μ΄μ
"><strong>animation-name</strong> : μ λλ©μ΄μ
keyframe μ΄λ¦μ μ€μ ν©λλ€.</li>
<li data-name="animation-play-state" data-type="μ λλ©μ΄μ
"><strong>animation-play-state</strong> : μ λλ©μ΄μ
μ§ν μνλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="animation-timing-function" data-type="μ λλ©μ΄μ
"><strong>animation-timing-function</strong> : μ λλ©μ΄μ
μμ§μμ μλλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="background" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background</strong> : λ°±κ·ΈλΌμ΄λ μμ±μ μΌκ΄μ μΌλ‘ μ€μ ν©λλ€.</li>
<li data-name="background-attachment" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-attachment</strong> : λ°°κ²½ μ΄λ―Έμ§μ κ³ μ μ¬λΆλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="background-blend-mode" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-blend-mode</strong> : λ°°κ²½μ νΌν©νμ λ κ·Έλν½ ν¨κ³Όλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="background-clip" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-clip</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§μ μμΉ κΈ°μ€μ μ μ€μ ν©λλ€.</li>
<li data-name="background-color" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-color</strong> : λ°±κ·ΈλΌμ΄λ μμμ μ€μ ν©λλ€.</li>
<li data-name="background-image" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-image</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§ μμ±μ μ€μ ν©λλ€.</li>
<li data-name="background-origin" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-origin</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§μ μμΉ κΈ°μ€μ μ μ€μ νκΈ° μν μμ±μ
λλ€.</li>
<li data-name="background-position" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-position</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§μ μμΉ μμμ μ€μ ν©λλ€.</li>
<li data-name="background-position-x" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-position-x</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§μ xμΆ μμΉ μμμ μ€μ ν©λλ€.</li>
<li data-name="background-porsition-y" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-porsition-y</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§μ yμΆ μμΉ μμμ μ€μ ν©λλ€.</li>
<li data-name="background-repeat" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-repeat</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§μ λ°λ³΅ μ¬λΆλ₯Ό μ€μ ν©λλ€.</li>
<li data-name="background-size" data-type="λ°±κ·ΈλΌμ΄λ"><strong>background-size</strong> : λ°±κ·ΈλΌμ΄λ μ΄λ―Έμ§ μ¬μ΄μ¦λ₯Ό μ€μ ν©λλ€.</li>
<li data-name="border" data-type="보λ"><strong>border</strong> : ν
λ리 μμ±μ μΌκ΄μ μΌλ‘ μ€μ ν©λλ€.</li>
<li data-name="border-bottom" data-type="보λ"><strong>border-bottom</strong> : μλμͺ½ ν
λ리 μμ±μ μΌκ΄μ μΌλ‘ μ€μ ν©λλ€.</li>
<li data-name="border-bottom-color" data-type="보λ"><strong>border-bottom-color</strong> : μλμͺ½ ν
λ리 μμ μμ±μ μ€μ ν©λλ€.</li>
<li data-name="border-bottom-left-radius" data-type="보λ"><strong>border-bottom-left-radius</strong> : μλ μΌμͺ½ λͺ¨μ리 ꡴곑μ μ€μ ν©λλ€.</li>
<li data-name="border-bottom-right-radius" data-type="보λ"><strong>border-bottom-right-radius</strong> : μλ μ€λ₯Έμͺ½ λͺ¨μ리 ꡴곑μ μ€μ ν©λλ€.</li>
<li data-name="border-bottom-style" data-type="보λ"><strong>border-bottom-style</strong> : μλμͺ½ ν
λ리 μ€νμΌ μμ±μ μ€μ ν©λλ€.</li>
<li data-name="border-bottom-width" data-type="보λ"><strong>border-bottom-width</strong> : μλμͺ½ ν
λ리 λκ» μμ±μ μ€μ ν©λλ€.</li>
<li data-name="border-collapse" data-type="보λ"><strong>border-collapse</strong> : ν λ° μ
μ ν
λ리μ νμλ°©λ²μ μ§μ ν©λλ€.</li>
<li data-name="border-color" data-type="보λ"><strong>border-color</strong> : ν
λ리 μμμ μ€μ ν©λλ€.</li>
<li data-name="border-left" data-type="보λ"><strong>border-left</strong> : μΌμͺ½ ν
λ리 μμ±μ μΌκ΄μ μΌλ‘ μ€μ ν©λλ€.</li>
<li data-name="border-left-color" data-type="보λ"><strong>border-left-color</strong> : μΌμͺ½ ν
λ리 μμμ μ€μ ν©λλ€.</li>
<li data-name="border-left-style" data-type="보λ"><strong>border-left-style</strong> : μΌμͺ½ ν
λ리 μ€νμΌ μμ±μ μ€μ ν©λλ€.</li>
<li data-name="border-left-width" data-type="보λ"><strong>border-left-width</strong> : μΌμͺ½ ν
λ리 λκ» μμ±μ μ€μ ν©λλ€.</li>
<li data-name="border-radius" data-type="보λ"><strong>border-radius</strong> : ν
λ리μ λ₯κΈκΈ° μμ±μ μ€μ ν©λλ€.</li>
</ul>
</div>
</div>
</div>
</main>
CSS μμ€
CSSλ‘ μ€νμΌ μμ±μ μΆκ°ν΄ μ£Όμμ΅λλ€. ν°νΈλ ν°λͺ¬, μμ€μ½μ΄ λλ¦Όμ μ¬μ©νμ΅λλ€. λ§μ°¬κ°μ§λ‘, λ©μΈ μμμ CSS μμ€μ λλ€.
:root {
--htmlColor: #223547;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'SCoreDream';
color: var(--htmlColor);
}
*,
*:before,
*:after {
box-sizing: border-box;
}
a {
text-decoration: none;
color: var(--htmlColor);
}
li {
list-style: none;
}
/* main */
#main {
margin: 50px 10px;
}
.search__wrap {
max-width: 1400px;
margin: 0 auto;
border: 3px solid var(--htmlColor);
border-radius: 20px;
background-color: #f1f3f6;
padding: 30px;
text-align: center;
}
.search__wrap>span {
font-size: 20px;
margin-bottom: 20px;
display: inline-block;
}
.search__wrap>h1 {
font-family: 'Tmon';
color: var(--htmlColor);
font-size: 6vw;
margin-bottom: 10px;
}
.search__box {
margin-bottom: 20px;
}
.search__box label {
position: absolute;
clip: rect(0 0 0 0);
width: 1px;
height: 1px;
margin: -1px;
overflow: hidden;
}
.search__box input {
border: 2px solid var(--htmlColor);
padding: 15px 40px;
width: 70%;
border-radius: 50px;
font-size: 20px;
}
.search__list li {
text-align: left;
line-height: 1.7;
}
.search__list li.hide {
display: none;
}
.search__list li.show {
display: block;
}
.search__info {
text-align: right;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px dashed var(--htmlColor);
}
.search__info .type {
text-align: center;
margin-bottom: 10px;
}
JAVASCRIPT μμ€
λλ§μ JAVASCIPRT μμ€μ λλ€. κ²μ μμκ³Ό λͺ©λ‘ 리μ€νΈ μ νμλ₯Ό λ¨Όμ λ§λ€μ΄ μ€ λ€, addEventListenerλ‘ κ²μ μμμ keyup μ΄λ²€νΈλ₯Ό μΆκ°ν΄ μ£Όμμ΅λλ€. μ¬μ©μκ° μ λ ₯ν ν€μλμ νμ λͺ©λ‘λ€μ κ°μ λΉκ΅νμ¬, indexOfμ κ°μ΄ 0μ΄λ©΄ 리μ€νΈλ₯Ό 보μ¬μ£Όκ³ , κ°μ΄ λ€λ₯΄λ©΄ 리μ€νΈλ₯Ό μ¨κΈ°λ λ°©μμΌλ‘ μμ ν΄ μ£Όμμ΅λλ€.
// μ νμ
const searchBox = document.querySelector(".search__box input") // κ²μ μμ
const searchList = document.querySelectorAll(".search__list ul li") // λͺ©λ‘ 리μ€νΈ
const searchInfo = document.querySelector(".search__info .num")
// μμ± κ°―μ μ€μ νκΈ°
searchInfo.textContent = searchList.length;
// κ²μ μμ
searchBox.addEventListener("keyup", () => {
const searchWord = searchBox.value; // μ¬μ©μκ° μ
λ ₯ν ν€μλ
searchList.forEach((el) => {
const cssName = el.dataset.name; // CSS μμ±μ λͺ¨λ κ°
const cssType = el.dataset.type; // CSS μμ±μ λ°μ΄ν°νμ
μ λͺ¨λ κ°
// μμ± μ΄λ¦, λ°μ΄ν° μ νλ³λ‘ κ²μνκΈ°
if(cssName.includes(searchWord) | cssType.includes(searchWord)){
el.classList.remove("hide"); // κ°μ΄ trueμ΄λ©΄ 보μ¬μ£Όκ³ ,
} else {
el.classList.add("hide"); // κ°μ΄ falseμ΄λ©΄ μ¨κΈ°κΈ°
}
})
})
κ²°κ³Ό
'Javascript Effect' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ°μ€ν¬λ¦½νΈ ν΄μ¦ ν¨κ³Ό : κ°κ΄μ(μ¬λ¬ λ¬Έμ ) μ ν : μΉλμμΈκΈ°λ₯μ¬ 2013λ 2ν κΈ°μΆ 60λ¬Έμ (10) | 2022.08.24 |
---|---|
μλ°μ€ν¬λ¦½νΈ κ²μ ν¨κ³Ό : charAt() (9) | 2022.08.22 |
μλ°μ€ν¬λ¦½νΈ κ²μ ν¨κ³Ό : indexOf() (5) | 2022.08.17 |
μλ°μ€ν¬λ¦½νΈ ν΄μ¦ ν¨κ³Ό : κ°κ΄μ μ ν (13) | 2022.08.08 |
μλ°μ€ν¬λ¦½νΈ ν΄μ¦ ν¨κ³Ό : μ£Όκ΄μ(μ¬λ¬ λ¬Έμ ) μ ν (11) | 2022.08.06 |
λκΈ