μλ°μ€ν¬λ¦½νΈ : κ²μ ν¨κ³Ό : find()
μλ°μ€ν¬λ¦½νΈμ λ€μν ν¨κ³Όλ€ μ€, ν΄λΉνλ λ¬Έμμ΄μ μ°Ύμ μ μλ κ²μ ν¨κ³Όμ λλ€. μ΄λ²μλ find() λ©μλλ₯Ό μ¬μ©νμ¬ μμ±μ κ²μνκ³ , κ²μνλ©΄ ν΄λΉνλ μ€λͺ μ΄ λνλλλ‘ μμ ν΄ λ³΄κ² μ΅λλ€.
1. μμ± μΆλ ₯νκΈ°
const cssProperty = [
{ name: "accent-color", desc: "νΉμ μμμ μμμ μ§μ ν λ μ¬μ©λ©λλ€." },
{ name: "align-content", desc: "μ½ν
μΈ μμ΄ν
μ μνκ΄κ³ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€." },
{ name: "align-items", desc: "μ½ν
μΈ μμ΄ν
μ λ΄λΆ μνκ΄κ³ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€." },
{ name: "align-self", desc: "κ°λ³μ μΈ μ½ν
μΈ μμ΄ν
μ μ λ ¬ μνλ₯Ό μ€μ ν©λλ€." },
{ name: "all", desc: "μμμ μμ±μ μ΄κΈ°ν λλ μμμ μ€μ ν©λλ€." },
{ name: "animation", desc: "μ λλ©μ΄μ
κ³Ό κ΄λ ¨λ μμ±μ μΌκ΄μ μΌλ‘ μ€μ ν©λλ€." },
{ name: "animation-delay", desc: "μ λλ©μ΄μ
μ§μ° μκ°μ μ€μ ν©λλ€." },
{ name: "animation-direction", desc: "μ λλ©μ΄μ
μμ§μ λ°©ν₯μ μ€μ ν©λλ€." },
{ name: "animation-duration", desc: "μ λλ©μ΄μ
μμ§μ μκ°μ μ€μ ν©λλ€." },
{ name: "animation-fill-mode", desc: "μ λλ©μ΄μ
μ΄ λλ νμ μνλ₯Ό μ€μ ν©λλ€." },
{ name: "animation-iteration-count", desc: "μ λλ©μ΄μ
μ λ°λ³΅ νμλ₯Ό μ€μ ν©λλ€." },
{ name: "animation-name", desc: "μ λλ©μ΄μ
keyframe μ΄λ¦μ μ€μ ν©λλ€." },
{ name: "animation-play-state", desc: "μ λλ©μ΄μ
μ§νμνλ₯Ό μ€μ ν©λλ€." },
{ name: "animation-timeline", desc: "x" },
{ name: "animation-timing-function", desc: "μ λλ©μ΄μ
μμ§μμ μλλ₯Ό μ€μ ν©λλ€." }
// μλ΅
];
μ΄λ²μλ μμ κ°μ΄ λ°°μ΄κ³Ό κ°μ²΄λ₯Ό μ¬μ©νμ¬ μμ±μ μ€ν¬λ¦½νΈλ‘ μμ±ν΄ μ£Όμμ΅λλ€.
const searchList = document.querySelector(".search__list");
const searchNum = document.querySelector(".search__info .num"); // μμ± κ°―μ μ
λ ₯ μμ
cssProperty.map((element, index) => {
searchList.innerHTML += `<span>${element.name}</span>`;
searchNum.innerHTML = index + 1;
});
μμ±ν μμ±λ€μ HTML μμ μ½μ ν΄ μ€λλ€. μ 체 μμ± μλ 보λμ€λ‘ μΆλ ₯ν΄ μ€λλ€.
2. keyup μ΄λ²€νΈ λ§λ€κΈ°
const searchBox = document.querySelector(".search__box input"); // κ²μμ°½
const searchDesc = document.querySelector(".search__desc"); // μμ± μ€λͺ
searchBox.addEventListener("keyup", () => {
let searchWord = searchBox.value;
findProperty(searchWord);
});
κ²μμ°½μ ν€μλλ₯Ό μ
λ ₯νμ λ, ν€μλμ μΌμΉνλ μμ±μ μ€λͺ
μ΄ λνλλλ‘ μμ
ν΄
λ΄
μλ€.
λ¨Όμ , searchBoxμ μ΄λ ν κ°μ΄ μ
λ ₯λμλμ§ μμμΌ ν©λλ€. valueλ
κ·Έ κ°μ λΆλ¬μ¬ λ μ¬μ©ν©λλ€.
valueλ₯Ό λΆλ¬μλ€λ©΄, κ·Έ κ°μ΄ μμ±λͺ
κ³Ό μΌμΉνλμ§ νμΈνκ³ , μΌμΉνλ€λ©΄ μ€λͺ
μ
λΆλ¬μμΌ ν©λλ€. κ·Έ κ³Όμ μ findPropertyλΌλ 맀κ°λ³μ ν¨μ μμμ μμ
νλλ‘
νκ² μ΅λλ€.
function findProperty(searchData) {
const targetData = cssProperty.find((data) => data.name === searchData);
if (targetData == null || targetData == undefined) {
searchDesc.textContent = "ν΄λΉ μμ±μ μ‘΄μ¬νμ§ μμ΅λλ€. λ€μ κ²μν΄ μ£ΌμΈμ.";
return; // 'μ’
λ£' μλ―Έμ return
}
searchDesc.textContent = targetData.desc;
}
find()λ λ°°μ΄ μμλ₯Ό κ²μνκ³ , ν΄λΉνλ μμλ₯Ό λ°ννλ λ©μλμ
λλ€.
μ¦, λλ²μ§Έ λΌμΈμ μ€ν¬λ¦½νΈλ cssProperty λ°°μ΄ λ΄μ κ°κ°μ κ°μ²΄μμ name κ°μ
μ°Ύκ³ , κ·Έκ²μ searchDataμ λΉκ΅νλ κ²μ
λλ€. μΌμΉνλ κ°μ΄ μμΌλ©΄ κ²°κ³Ό μμ
μλ¦Όμ μΆλ ₯νκ³ , κ°μ΄ μμΌλ©΄ cssProperty λ°°μ΄ λ΄μμ ν΄λΉνλ desc κ°μ
μΆλ ₯ν©λλ€.
μ°Έκ³ λ‘, μ¬κΈ°μμ returnμ μ’
λ£μ μλ―Έλ‘ μ¬μ©λ©λλ€.
3. click μ΄λ²€νΈ λ§λ€κΈ°
const searchcss = document.querySelectorAll(".search__list span"); // μμ± λͺ©λ‘
searchcss.forEach((e, i) => {
e.addEventListener("click", () => {
searchDesc.textContent = cssProperty[i].desc;
});
});
보λμ€λ‘, μμ±μ ν΄λ¦νμ λμλ ν΄λΉνλ μ€λͺ μ΄ λνλλλ‘ μμ ν΄ λ³΄κ² μ΅λλ€. κ°κ°μ μμ± λͺ©λ‘μ λν μ νμλ₯Ό λ§λ€κ³ , click μ΄λ²€νΈλ₯Ό λ§λ€μ΄ μ€λλ€. cssPropertyλ λ°°μ΄μ΄λ―λ‘, ν΄λΉνλ μΈλ±μ€μ desc κ°μ μΆλ ₯νλλ‘ μμ ν΄ μ£Όλ©΄ λ©λλ€.
κ²°κ³Ό
'Javascript Effect' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ°μ€ν¬λ¦½νΈ ν¨λ΄λμ€ ν¨κ³Ό : ν μ€νΈ ν¨κ³Ό (2) | 2022.09.29 |
---|---|
μλ°μ€ν¬λ¦½νΈ λ§μ°μ€ ν¨κ³Ό : ν μ€νΈ ν¨κ³Ό (5) | 2022.09.29 |
μλ°μ€ν¬λ¦½νΈ λ§μ°μ€ ν¨κ³Ό : κΈ°μΈκΈ° ν¨κ³Ό / λ°μ ν¨κ³Ό (10) | 2022.09.28 |
μλ°μ€ν¬λ¦½νΈ λ§μ°μ€ ν¨κ³Ό : μ΄λ―Έμ§ ν¨κ³Ό (3) | 2022.09.22 |
μλ°μ€ν¬λ¦½νΈ λ§μ°μ€ ν¨κ³Ό : μ‘°λͺ ν¨κ³Ό (9) | 2022.09.22 |
λκΈ