๊ฒ์ ์ดํํธ ๋ง๋ค๊ธฐ 01
์ด๋ฒ ์๊ฐ์๋ ๊ทธ ๋์ ๋ฐฐ์ ๋ JavaScript๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์ ์ดํํธ๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด๋ฒ ํ์ต ๋ด์ฉ์ ์ ํ์ฉํ์ฌ ๊ทธ๋์ ๋ฐฐ์ ๋ HTML ํ๊ทธ์ CSS ์์ฑ, JavaScript ์คํ๋ฌธ๋ค์ ๊ฒ์์ฐฝ์ ํค์๋๋ฅผ ์
๋ ฅํด์
์ค๋ช
์ ๋ณผ ์ ์๋ ํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ณด๋๋ก ํฉ์๋ค. ๋์ค์ ๋ชจ๋ฅด๋ ๊ฒ ์๊ฒผ์ ๋ ๊ณต๋ถํ๊ธฐ ํธํ๊ฒ ๋ง์ด์ฃ !
์, ๊ทธ๋ผ ์์ํด๋ณผ๊น์?
HTML ์์ค ๋ณด๊ธฐ
๊ฒ์ ์ดํํธ 01์ HTML ์์ค์ ๋ถ์ฐ ์ค๋ช
(์ฃผ์ ์ฒ๋ฆฌ๋จ)์ด๋ค.
CSS ์์ค๋ฅผ ํจ๊ป ๋ณด๊ณ ์ถ๋ค๋ฉด ๋งจ ์๋์ 'CSS ์์ค ๋ณด๊ธฐ' ๋ฒํผ์ ๋๋ฅผ ๊ฒ.
<body>
<header id="header">
<h1>Search</h1>
<nav>
<ul>
<li class="active"><a href="searchEffect01.html">01</a>
<ul class="sub">
<li class="active"><a href="searchEffect01.html">HTML</a></li>
<li><a href="searchEffect01_css.html">CSS</a></li>
<li><a href="searchEffect01_js.html">JavaScript</a></li>
</ul>
</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><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>indexOf()๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์ํ๊ธฐ</span>
<h1>HTML ํ๊ทธ ๊ฒ์ํ๊ธฐ</h1>
<div class="search__box"> <!-- ๊ฒ์์์ -->
<label for="search">๊ฒ์ํ๊ธฐ</label> <!-- ์คํฌ๋ฆฐ๋ฆฌ๋๊ธฐ์ ์ฝํ์ง๋ง ๊ฒ์ผ๋ก๋ ์๋ณด์ด๊ฒ CSS ์์ฑ์ผ๋ก ์ฒ๋ฆฌ -->
<input type="text" id="search" placeholder="HTML ํ๊ทธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์."> <!-- ์๋ฌด๊ฒ๋ ์
๋ ฅ ์ํ์๋ ๋ํ๋๋ ๋ฌธ๊ตฌ -->
</div>
<div class="search__list">
<div class="html">
<ul>
<li data-name="a"><strong>a</strong> : ๋ค๋ฅธ ํ์ด์ง๋ก์ ์ด๋์ ์ค์ ํจ</li>
<li data-name="abbr"><strong>abbr</strong> : ์ค์๋ง์ด๋ ๋จธ๋ฆฌ๊ธ์๋ฅผ ํํ ํ ๋ ์ฌ์ฉ</li>
<li data-name="acronym"><strong>acronym</strong> : ์ค์๋ง์ด๋ ๋จธ๋ฆฌ๊ธ์๋ฅผ ํํ ํ ๋ ์ฌ์ฉ</li>
<li data-name="address"><strong>address</strong> : ๊ฐ๊น์ด HTML ์์์ ์ฌ๋, ๋จ์ฒด, ์กฐ์ง ๋ฑ์ ๋ํ ์ฐ๋ฝ์ฒ ์ ๋ณด๋ฅผ ๋ํ๋
๋๋ค.</li>
<li data-name="applet"><strong>applet</strong> : ์ฌ์ฉ๋์ง ์์</li>
<li data-name="area"><strong>area</strong> : ์ด๋ฏธ์ง์ ํซ์คํ ์์ญ์ ์ ์ํ๊ณ ํ์ดํผ๋งํฌ (en-US)๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. map ์์ ์์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.</li>
<li data-name="article"><strong>article</strong> : ๋ฌธ์, ํ์ด์ง, ์ ํ๋ฆฌ์ผ์ด์
, ๋๋ ์ฌ์ดํธ ์์์ ๋
๋ฆฝ์ ์ผ๋ก ๊ตฌ๋ถํด ๋ฐฐํฌํ๊ฑฐ๋ ์ฌ์ฌ์ฉํ ์ ์๋ ๊ตฌํ์ ๋ํ๋
๋๋ค.</li>
<li data-name="aside"><strong>aside</strong> : ๋ฌธ์์ ์ฃผ์ ๋ด์ฉ๊ณผ ๊ฐ์ ์ ์ผ๋ก๋ง ์ฐ๊ด๋ ๋ถ๋ถ์ ๋ํ๋
๋๋ค.</li>
<li data-name="audio"><strong>audio</strong> : ๋ฌธ์์ ์๋ฆฌ ์ฝํ
์ธ ๋ฅผ ํฌํจํ ๋ ์ฌ์ฉํฉ๋๋ค.</li>
<li data-name="b"><strong>b</strong> : ๋
์์ ์ฃผ์๋ฅผ ์์์ ์ฝํ
์ธ ๋ก ๋๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํฉ๋๋ค.</li>
<li data-name="base"><strong>base</strong> : ๋ฌธ์ ์์ ๋ชจ๋ ์๋ URL์ด ์ฌ์ฉํ ๊ธฐ์ค URL์ ์ง์ ํฉ๋๋ค.</li>
<li data-name="bdi"><strong>bdi</strong> : bdi ํ๊ทธ๋</li>
<li data-name="bdo"><strong>bdo</strong> : ํ์ฌ ํ
์คํธ์ ์ฐ๊ธฐ ๋ฐฉํฅ์ ๋ฎ์ด์ฐ๊ณ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋ ๋๋ง ํ ๋ ์ฌ์ฉํฉ๋๋ค.</li>
<li data-name="bgsound"><strong>bgsound</strong> : ๋ฐฐ๊ฒฝ ์ฌ์ด๋ ์ค์ . ํ์ฌ ์ฌ์ฉ๋์ง ์์.</li>
<li data-name="big"><strong>big</strong> : big. ํ์ฌ ์ฌ์ฉ๋์ง ์์.</li>
</ul>
</div>
</div>
</div>
</main>
<!-- // main -->
<footer id="footer">
<a href="mailto:kde66034@gmail.com">kde66034@gmail.com</a>
</footer>
<!-- // footer -->
</body>
JavaScript ์์ค ๋ณด๊ธฐ
๊ฒ์ ์ดํํธ 01์ JavaScript ์์ค์ ๋ถ์ฐ ์ค๋ช (์ฃผ์ ์ฒ๋ฆฌ๋จ)์ด๋ค.
// ์ ํ์ : ์์ const๋ฅผ ํ์ํ ๋งํผ ์ ์ธ ํ HTML ์์ญ์ div, ์๋งจํฑํ๊ทธ ๋ฑ์ class๋ช
๊ณผ ์ฐ๊ฒฐ
const searchBox = document.querySelector(".search__box input"); // ๊ฒ์ ์์ญ
const searchList = document.querySelectorAll(".search__list ul li"); // ๋ชฉ๋ก ๋ฆฌ์คํธ
// ๊ฒ์ ์์ญ ์ด๋ฒคํธ
searchBox.addEventListener("keyup", () => { // ์ฌ์ฉ์๊ฐ ๊ฒ์ ์์ญ์ keyup ํ์ ๋(ํค๋ฅผ ๋๋ ๋ค๊ฐ ๋ผ์์ ๋)
const searchWord = searchBox.value; // ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํค์๋ ๊ฐ
searchList.forEach(el => {
const htmlName = el.dataset.name; // ๋ฐ์ดํฐ ์
ํ
if(htmlName.indexOf(searchWord)){
el.classList.add("hide"); // ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํค์๋์ ์ํ๋ฒณ์ด ํฌํจ๋ ๋ด์ฉ ์ถ๋ ฅ
} else {
el.classList.remove("hide"); // indexOf๊ฐ์ด 0์ด ๋๋ ๊ฐ๋ง hide๋ฅผ ์ง์์ค
}
});
});
'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] ๊ฒ์ ์ดํํธ 03 (7) | 2022.08.22 |
[Search Effect] ๊ฒ์ ์ดํํธ 02 (2) | 2022.08.17 |
๋๊ธ