๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Javascript Effect

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ€ด์ฆˆ ํšจ๊ณผ : ๊ฐ๊ด€์‹ ์œ ํ˜•

by ์ฝ”ํŒŒ์นด 2022. 8. 8.
728x90

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ : ํ€ด์ฆˆ ํšจ๊ณผ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‹ค์–‘ํ•œ ํšจ๊ณผ๋“ค ์ค‘, ํ€ด์ฆˆ๋ฅผ ๋งžํž ์ˆ˜ ์žˆ๋Š” ํ€ด์ฆˆ ํšจ๊ณผ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„, ๊ฐ๊ด€์‹ ์ •๋‹ต์„ ์„ ํƒํ•˜๋Š” ํ€ด์ฆˆ ์œ ํ˜•์„ ์ž‘์—…ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


๊ฐ๊ด€์‹ ์œ ํ˜•

์˜ˆ์‹œ๋Š” ์›น๋””์ž์ธ๊ธฐ๋Šฅ์‚ฌ์˜ ํ•„๊ธฐ ์‹œํ—˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 4์ง€์„ ๋‹ค ๋ฌธ์ œ์˜ ์ •๋‹ต์„ ๋งžํžˆ๋ฉด ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉฐ ๊ฐ•์•„์ง€ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๊ธฐ๋ปํ•˜๊ณ , ์ •๋‹ต์„ ๋งžํžˆ์ง€ ๋ชปํ•˜๋ฉด ์Šฌํผํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

// ์„ ํƒ์ž
const quizType = document.querySelector(".quiz__type");                     // ํ€ด์ฆˆ ์ข…๋ฅ˜
const quizNumber = document.querySelector(".quiz__question .number");       // ํ€ด์ฆˆ ๋ฒˆํ˜ธ
const quizAsk = document.querySelector(".quiz__question .ask");             // ํ€ด์ฆˆ ์งˆ๋ฌธ
const quizConfirm = document.querySelector(".quiz__answer .confirm");       // ์ •๋‹ต ํ™•์ธ ๋ฒ„ํŠผ
const quizResult = document.querySelector(".quiz__answer .result");         // ์ •๋‹ต ๊ฒฐ๊ณผ
const quizView = document.querySelector(".quiz__view");                     // ๊ฐ•์•„์ง€
const quizSelects = document.querySelector(".quiz__selects")                // ๊ฐ๊ด€์‹ ๋ณด๊ธฐ
const quizChoice = quizSelects.querySelectorAll(".choice")                     // ๊ฐ๊ด€์‹ ๋ณด๊ธฐ
const quizSelect = quizSelects.querySelectorAll(".select")                     // ๊ฐ๊ด€์‹ ๋ณด๊ธฐ
    // ๊ฐ๊ด€์‹ ๋ณด๊ธฐ๋Š” 4๊ฐœ์”ฉ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— querySelectorAll ์‚ฌ์šฉ
                
// ๋ฌธ์ œ ์ •๋ณด
const quizInfo = [
    {
        answerType : "์›น๋””์ž์ธ๊ธฐ๋Šฅ์‚ฌ 2013๋…„ 2ํšŒ",
        answerNum : "1",
        answerAsk : "๊ตฟ ๋””์ž์ธ(good design)์„ ์œ„ํ•œ ๋””์ž์ธ์˜ ์กฐ๊ฑด์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€?",
        answerChoice : ["ํ•ฉ๋ชฉ์ ์„ฑ", "๋…์ฐฝ์„ฑ", "์‹ฌ๋ฏธ์„ฑ", "๋ชจ๋ฐฉ์„ฑ"],
        answerResult : "4",
        answerEx : "๋ชจ๋ฐฉ์„ฑ์€ ๊ตฟ ๋””์ž์ธ(good design)์„ ์œ„ํ•œ ๋””์ž์ธ์˜ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."
    }
]
            
// ๋ฌธ์ œ ์ถœ๋ ฅ
function updateQuiz(){    // ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž‘์—…ํ•˜์˜€์Œ
    quizType.textContent = quizInfo[0].answerType;
    quizNumber.textContent = quizInfo[0].answerNum + ". ";
    quizAsk.textContent = quizInfo[0].answerAsk;
    quizResult.textContent = quizInfo[0].answerEx;

    // ๋ณด๊ธฐ ์ถœ๋ ฅ
    for(let i=0; i<4; i++){
        quizChoice[i].textContent = quizInfo[0].answerChoice[i];
    }

    // ํ•ด์„ค ์ˆจ๊ธฐ๊ธฐ
    quizResult.style.display = "none";
}
updateQuiz();    // ํ•จ์ˆ˜ ์‹คํ–‰

// ์ •๋‹ต ํ™•์ธ
function answerQuiz(){
    // ์‚ฌ์šฉ์ž ์„ ํƒ๊ฐ’๊ณผ ์ •๋‹ต ๋น„๊ต
    // ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ input --> checked๋กœ ํ™•์ธ

    for(let i=0; i<quizSelect.length; i++){
        if(quizSelect[i].checked == true){  // ๋ณด๊ธฐ์— ์ฒดํฌ๊ฐ€ ๋œ ์ƒํƒœ
            // ์ฒดํฌ๋œ ๋ฒˆํ˜ธ์™€ ๋ฌธ์ œ ๋ฒˆํ˜ธ ๋น„๊ต
            if(quizSelect[i].value == quizInfo[0].answerResult){
                // alert("์ •๋‹ต์ž…๋‹ˆ๋‹ค") : ๊ฐ•์•„์ง€ ๋ชจ์…˜ ์ถ”๊ฐ€, ๋ฒ„ํŠผ ์ˆจ๊น€
                quizView.classList.add("like");
                quizConfirm.style.display = "none";
            } else {
                // alert("์˜ค๋‹ต์ž…๋‹ˆ๋‹ค") : ๊ฐ•์•„์ง€ ๋ชจ์…˜ ์ถ”๊ฐ€, ์„ค๋ช… ์ถ”๊ฐ€, ๋ฒ„ํŠผ ์ˆจ๊น€
                quizView.classList.add("dislike");
                quizResult.style.display = "block";
                quizConfirm.style.display = "none";
            }
        }
    }
}

// ํ™•์ธํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ•จ์ˆ˜ ์‹คํ–‰
quizConfirm.addEventListener("click", answerQuiz);
728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘