๊ฒ์ ์ดํํธ ๋ง๋ค๊ธฐ 03
์ด๋ฒ ์๊ฐ์๋ ๊ทธ ๋์ ๋ฐฐ์ ๋ JavaScript๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์ ์ดํํธ๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด๋ฒ ํ์ต ๋ด์ฉ์ ์ ํ์ฉํ์ฌ ๊ทธ๋์ ๋ฐฐ์ ๋ CSS ์์ฑ๋ค์ ๊ฒ์์ฐฝ ํ์์ผ๋ก ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋๋ก
๋ง๋ค์ด๋ณด๋๋ก ํฉ์๋ค. ๋์ค์ ๋ชจ๋ฅด๋ ๊ฒ ์๊ฒผ์ ๋ ๊ณต๋ถํ๊ธฐ ํธํ๊ฒ ๋ง์ด์ฃ !
์, ๊ทธ๋ผ ์์ํด๋ณผ๊น์?
HTML ์์ค ๋ณด๊ธฐ
๊ฒ์ ์ดํํธ 03์ 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 class="active"><a href="searchEffect03.html">03</a></li>
<li><a href="searchEffect04.html">04</a></li>
<li><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>charAt()๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์ํ๊ธฐ</span>
<h1>CSS ์์ฑ ์ฒซ ๊ธ์ ๊ฒ์ํ๊ธฐ</h1>
<div class="search__info">
<div class="keyword">
<span>a</span>
<span>b</span>
<span>c</span>
<span>d</span>
<span>e</span>
<span>f</span>
<span>g</span>
<span>h</span>
<span>i</span>
<span>j</span>
<span>k</span>
<span>l</span>
<span>m</span>
<span>n</span>
<span>o</span>
<span>p</span>
<span>q</span>
<span>r</span>
<span>s</span>
<span>t</span>
<span>u</span>
<span>v</span>
<span>w</span>
<span>x</span>
<span>y</span>
<span>z</span>
</div>
<div>์ ์ฒด ์์ฑ ๊ฐ์ : <span class="num">0</span></div>
</div>
<div class="search__list">
<div class="css">
<ul>
<li><strong>accent-color</strong> : ๋ค๋ฅธ ํ์ด์ง๋ก์ ์ด๋์ ์ค์ ํจ</li>
<li><strong>align-content</strong> : ์ฝํ
์ธ ์์ดํ
์ ์ํ๊ด๊ณ ์ ๋ ฌ ์ํ๋ฅผ ์ค์ </li>
<li><strong>align-items</strong> : ์ฝํ
์ธ ์์ดํ
์ ๋ด๋ถ ์ํ๊ด๊ณ ์ ๋ ฌ ์ํ๋ฅผ ์ค์ ํจ</li>
<!-- โฆ ๊ธธ์ด์ง๋ฏ๋ก ์ดํ ์๋ต -->
</ul>
</div>
</div>
</div>
</main>
<!-- // main -->
<footer id="footer">
<a href="mailto:kde66034@gmail.com">kde66034@gmail.com</a>
</footer>
<!-- // footer -->
</body>
JavaScript ์์ค ๋ณด๊ธฐ
๊ฒ์ ์ดํํธ 03์ JavaScript ์์ค์ ๋ถ์ฐ ์ค๋ช (์ฃผ์ ์ฒ๋ฆฌ๋จ)์ด๋ค.
// ์ ํ์
const searchKeyword = document.querySelectorAll(".search__info .keyword span"); // ์ํ๋ฒณ
const searchList = document.querySelectorAll(".search__list ul li"); // ๋ชฉ๋ก ๋ฆฌ์คํธ
const searchInfo = document.querySelector(".search__info .num"); // ์ ์ฒด ๊ฐ์
let count = 0;
// ์ ์ฒด ๊ฐ์ ๊ตฌํ๊ธฐ
searchInfo.textContent = searchList.length; // CSS ์์ฑ ์ด ๊ฐ์ ์ถ๋ ฅ
searchKeyword.forEach(el => {
el.addEventListener("click", () => {
const searchWord = el.innerText; // ์ฌ์ฉ์๊ฐ ํด๋ฆญํ ์ํ๋ฒณ
searchWord.textContent = searchInfo.length // ์ ํํ ์ํ๋ฒณ ๊ฐ์
// console.log(searchWord);
searchList.forEach(el => {
const cssName = el.querySelector("strong").innerText; // CSS ์์ฑ ํ
์คํธ
// console.log(cssName);
// ์ํ๋ฒณ ์ฒซ๊ธ์ == CSS ์์ฑ์ ์ฒซ๊ธ์
if(searchWord.charAt(0) === cssName.charAt(0)) {
el.classList.remove("hide");
count++; // ๊ฐ์ ๋ํด์ค
} else {
el.classList.add("hide");
}
searchInfo.textContent = count; // ๊ฒ์ํ CSS์ ์์ฑ ๊ฐ์์ count ์ ์ฅํด์ ์ถ๋ ฅํจ
});
count = 0; // ๊ฐ์ ์ด๊ธฐํ
});
});
'Effect > Search Effect' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Search Effect] ๊ฒ์ ์ดํํธ 06 (1) | 2022.10.21 |
---|---|
[Search Effect] ๊ฒ์ ์ดํํธ 05 (4) | 2022.09.29 |
[Search Effect] ๊ฒ์ ์ดํํธ 04 (3) | 2022.09.28 |
[Search Effect] ๊ฒ์ ์ดํํธ 02 (2) | 2022.08.17 |
[Search Effect] ๊ฒ์ ์ดํํธ 01 (8) | 2022.08.16 |
๋๊ธ