κ²μ μ΄ννΈ λ§λ€κΈ° 05
μ΄λ² μκ°μλ κ·Έ λμ λ°°μ λ JavaScriptλ₯Ό μ΄μ©νμ¬ κ²μ μ΄ννΈλ₯Ό λ§λ€μ΄λ³΄λλ‘ νκ² μ΅λλ€.
μ΄λ² νμ΅ λ΄μ©μ μ νμ©νμ¬ κ·Έλμ λ°°μ λ CSS μμ±λ€μ κ²μμ°½ νμμΌλ‘ μνλ κ²°κ³Όκ° λμ€λλ‘
λ§λ€μ΄λ³΄λλ‘ ν©μλ€. λμ€μ λͺ¨λ₯΄λ κ² μκ²Όμ λ 곡λΆνκΈ° νΈνκ² λ§μ΄μ£ !
μ, κ·ΈλΌ μμν΄λ³ΌκΉμ?
HTML μμ€ λ³΄κΈ°
κ²μ μ΄ννΈ 05μ HTML μμ€μ λΆμ° μ€λͺ
(μ£Όμ μ²λ¦¬λ¨)μ΄λ€.
CSS μμ€λ₯Ό ν¨κ» λ³΄κ³ μΆλ€λ©΄ 맨 μλμ 'CSS μμ€ λ³΄κΈ°' λ²νΌμ λλ₯Ό κ².
<body>
<header id="header">
<h1>Search</h1>
<nav>
<ul>
<li><a href="searchEffect01.html">01</a></li>
<li><a href="searchEffect02.html">02</a></li>
<li><a href="searchEffect03.html">03</a></li>
<li><a href="searchEffect04.html">04</a></li>
<li class="active"><a href="searchEffect05.html">05</a></li>
<li><a href="searchEffect06.html">06</a></li>
</ul>
</nav>
</header>
<!-- // header -->
<main id="main">
<div class="search__wrap">
<span>filter()λ₯Ό μ΄μ©νμ¬ μμ±μ μ€μλ 보μ¬μ£ΌκΈ°</span>
<h1>CSS μμ± κ²μνκΈ°</h1>
<div class="search__click">
<ul>
<li data-star="0"><a href="#">βββββ</a></li>
<li data-star="1"><a href="#">β
ββββ</a></li>
<li data-star="2"><a href="#">β
β
βββ</a></li>
<li data-star="3"><a href="#">β
β
β
ββ</a></li>
<li data-star="4"><a href="#">β
β
β
β
β</a></li>
<li data-star="5"><a href="#">β
β
β
β
β
</a></li>
</ul>
<ul>
<li data-number="1"><a href="#">1κ° μ΄μ</a></li>
<li data-number="2"><a href="#">2κ° μ΄μ</a></li>
<li data-number="3"><a href="#">3κ° μ΄μ</a></li>
<li data-number="4"><a href="#">4κ° μ΄μ</a></li>
</ul>
</div>
<div class="search__info">
<div>μ 체 μμ± κ°μ : <span class="num">0</span></div>
</div>
<div class="search__list">
<ul class="line">
</ul>
</div>
</div>
</main>
<!-- // main -->
<footer id="footer">
<a href="mailto:kde66034@gmail.com">kde66034@gmail.com</a>
</footer>
<!-- //footer -->
</body>
JavaScript μμ€ λ³΄κΈ°
κ²μ μ΄ννΈ 05μ JavaScript μμ€μ λΆμ° μ€λͺ (μ£Όμ μ²λ¦¬λ¨)μ΄λ€. μμ cssPropertyμ κ²μκ²°κ³Όμ λμΈ CSS μμ± λ¦¬μ€νΈλ€μ λͺ¨λ μ μ₯νκ³ μ΄κ²λ€μ μΆλ ₯νκ³ μμ± ν΄λ¦ μ μ€λͺ μ΄ λμ€λλ‘ νλ μμ κ³Ό λ§μ§λ§μΌλ‘ μ¬μ©μκ° μ λ ₯ν κ°κ³Ό μΌμΉνλ μμ± nameμ descλ₯Ό μΆλ ₯μμΌμ£Όλ μ€ν¬λ¦½νΈλ₯Ό μ§ λ€. μ«μλ₯Ό λ³λ‘ μΉννλ μμ μ μλ μ£Όμ μ²λ¦¬λ λΆμ° μ€λͺ μ μ°Έμ‘°ν κ².
// CSS μμ± λ¦¬μ€νΈ μ μ₯
const cssProperty = [
{ name: "accent-color", desc: "νΉμ μμμ μμμ μ§μ ν λ μ¬μ©λ©λλ€." },
{ name: "align-content", desc: "μ½ν
μΈ μμ΄ν
μ μνκ΄κ³ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€." },
{ name: "align-items", desc: "μ½ν
μΈ μμ΄ν
μ λ΄λΆ μνκ΄κ³ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€." },
]
const searchList = document.querySelector(".search__list ul");
const searchClick = document.querySelectorAll(".search__click ul li");
const star = document.querySelectorAll(".search__click ul li a")
const searchNum = document.querySelector(".search__info .num"); // μ 체 κ°μ
let count=0;
// μΆλ ₯νκΈ°
function updateList(list){
listCSS = "";
for(const data of list){
starList = star[data.star].innerText; // μ«μλ₯Ό λ³λ‘ μΉνν¨
count++;
listCSS += `<li><strong>${data.name}</strong> : ${data.desc} <em>${starList}</em></li>`;
// μμ± μ΄λ¦ : μ€λͺ
<em>μ«μλ₯Ό λ³λ‘ μΉνν κ°</em>
}
searchNum.innerHTML = count;
count = 0;
searchList.innerHTML = listCSS;
}
updateList(cssProperty);
// ν΄λ¦νκΈ°
searchClick.forEach(star => {
star.addEventListener("click", () => {
const target = star.dataset.star;
const target2 = star.dataset.number;
const filterList = cssProperty.filter(data => data.star == target || data.star >= target2);
searchNum.innerHTML = filterList.length; // μμ± κ°μ νμ
updateList(filterList);
});
});
'Effect > Search Effect' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Search Effect] κ²μ μ΄ννΈ 07 (1) | 2022.10.21 |
---|---|
[Search Effect] κ²μ μ΄ννΈ 06 (1) | 2022.10.21 |
[Search Effect] κ²μ μ΄ννΈ 04 (3) | 2022.09.28 |
[Search Effect] κ²μ μ΄ννΈ 03 (7) | 2022.08.22 |
[Search Effect] κ²μ μ΄ννΈ 02 (2) | 2022.08.17 |
λκΈ