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

ํ€ด์ฆˆ ๋งŒ๋“ค๊ธฐ (4) ๊ฐ๊ด€์‹ ๋‹จ์ผ ๋ฌธํ•ญ

by oranssy 2022. 8. 9.
728x90
๋ฐ˜์‘ํ˜•

โญ๏ธ ๊ฐ๊ด€์‹ ๋‹จ์ผ ๋ฌธํ•ญ (์ •๋‹ต ์˜ค๋‹ต ํ™•์ธ) โญ๏ธ


01. ๋งŒ๋“œ๋Š” ์ˆœ์„œ

1) ์ถœ๋ ฅํ•  ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๋Š” ์š”์†Œ ์„ ํƒํ•˜๊ธฐ
2) ์งˆ๋ฌธ๊ณผ ์ •๋‹ต ๋‚ด์šฉ, ํ•„์š”ํ•œ ๊ฐ’ ์ž…๋ ฅํ•˜๊ธฐ
3) ์งˆ๋ฌธ ๋‚ด์šฉ ์ถœ๋ ฅํ•˜๊ธฐ
4) ์ •๋‹ต ๋‚ด์šฉ ์ˆจ๊ฒจ๋†“๊ธฐ
5) ์ •๋‹ต ํ™•์ธ ๋ฐ ๊ฒฐ๊ณผ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ
6) ์ •๋‹ต ๋ฒ„ํŠผ์˜ ๋™์ž‘ ์„ค์ •ํ•˜๊ธฐ

02. < script > ์— ์ž‘์„ฑํ•˜๊ธฐ

// 01. ์ถœ๋ ฅํ•  ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ๋Š” ์š”์†Œ ์„ ํƒํ•˜๊ธฐ  (์—ฌ๋Ÿฌ๊ฐœ์˜ ์ถœ๋ ฅ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๋ถ€๋ถ„์—๋งŒ ๋์— All์„ ๋ถ™์—ฌ์คŒ.)

    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 quizSelcets = document.querySelector(".quiz__selects");         // ๊ฐ๊ด€์‹ ๋ณด๊ธฐ ์ง€๋ฌธ
    const quizChoice = quizSelcets.querySelectorAll(".choice");
                // quizSelcets ์•ˆ์—์„œ ์ฐพ์œผ๋ผ๊ณ  querySelectorAll ์•ž์˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ, ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ฒŒ ์ฐพ์Œ
    const quizSelect = quizSelcets.querySelectorAll(".select");
                // quizChoice -> ๋ณด๊ธฐ ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ   quizSelect -> ํ‘œ์‹œ ๋™๊ทธ๋ผ๋ฏธ



    // 02. ์งˆ๋ฌธ๊ณผ ์ •๋‹ต ๋‚ด์šฉ, ์ถœ๋ ฅ์— ํ•„์š”ํ•œ ๊ฐ’ ์ž…๋ ฅํ•˜๊ธฐ (๋‹ค์ˆ˜์˜ ๊ฐ’, ๊ฐ์ฒด๋กœ ํ‘œํ˜„)

    const quizInfo = [
        {
            answerType: "์›น ๋””์ž์ธ ๊ธฐ๋Šฅ์‚ฌ (2016๋…„ 7์›”)",
            answerNum: "1",
            answerAsk: "์œ ์‚ฌ์กฐํ™”์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?",
            answerChoice: ["์˜จํ™”ํ•จ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.", "๋•Œ๋•Œ๋กœ ๋‹จ์กฐ๋กœ์›Œ ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ˜๋ณต์— ์˜ํ•œ ๋ฆฌ๋“ฌ๊ฐ์„ ์ด๋Œ์–ด ๋‚ธ๋‹ค.", "๋™์ผํ•˜์ง€ ์•Š๋”๋ผ๋„ ์„œ๋กœ ๋‹ฎ์€ ํ˜•ํƒœ์˜ ๋ชจ์–‘, ์ข…๋ฅ˜, ์˜๋ฏธ, ๊ธฐ๋Šฅ๋ผ๋ฆฌ ์—ฐํ•ฉํ•˜์—ฌ ํ•œ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.", "์ˆ˜ํ‰๊ณผ ์ˆ˜์ง, ์ง์„ ๊ณผ ๊ณก์„  ๋“ฑ ๋Œ€๋ฆฝ๋œ ๋ชจ์–‘์ด๋‚˜ ์ข…๋ฅ˜์—์„œ ๋‚˜ํƒ€๋‚œ๋‹ค."],
            answerResult: "4",        // ์‚ฌ์šฉ์ž์˜ ๋‹ต๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ž…๋ ฅํ•ด์คŒ.
            answerEx: "์œ ์‚ฌ์กฐํ™” : ์ƒ‰์ƒ์ด ์„œ๋กœ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ์กฐํ™”๋ฅผ ๋งํ•˜๋ฉฐ, ์ƒ‰์ƒ์ด๋‚˜ ์„ฑ๊ฒฉ์ด ๋น„์Šทํ•œ ์ƒ‰์ƒ์˜ ๋ฐฐ์ƒ‰์—์„œ ์–ป์–ด์ง‘๋‹ˆ๋‹ค. ์นœ๊ทผ๊ฐ๊ณผ ๋ถ€๋“œ๋Ÿฌ์›€์„ ์ฃผ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์ง€๋งŒ ๋‹จ์กฐ๋กœ์›€์„ ์ค„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.",  // ์ •๋‹ต ํ•ด์„ค
        }
    ];



    // 03. ์งˆ๋ฌธ ๋‚ด์šฉ ์ถœ๋ ฅํ•˜๊ธฐ : for๋ฌธ์ด ์งˆ๋ฌธ ๋‚ด์šฉ ์ถœ๋ ฅ๊ณผ ์ •๋‹ต ํ™•์ธ ์„ค์ •์— 2๋ฒˆ ์“ฐ์ด๋ฏ€๋กœ, ํ•จ์ˆ˜๋กœ ๊ฐ์‹ธ์„œ ํ˜น์‹œ ๋ชจ๋ฅผ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•จ

    function updateQuiz(){
        quizType.textContent = quizInfo[0].answerType;
        quizNumber.textContent = quizInfo[0].answerNum + ". ";
        quizAsk.textContent = quizInfo[0].answerAsk;
        quizResult.textContent = quizInfo[0].answerEx;      // ์ •๋‹ต ๋‚ด์šฉ์— ํ•ด์„ค์„ ์ถœ๋ ฅ

        for( i=0; i<4; i++){ 

            quizChoice[i].textContent = quizInfo[0].answerChoice[i]; 
        }        // ๋ณด๊ธฐ ์ถœ๋ ฅ : quizChoice ์˜ i๋ฒˆ์งธ ๊ฐ’ = quizInfo[0] ์•ˆ์— ์žˆ๋Š” answerChoice i๋ฒˆ์งธ ๊ฐ’์„ ์ถœ๋ ฅ

        // 04. '์ •๋‹ต ํ™•์ธ ๋ฒ„ํŠผ' ๋ฐ‘์œผ๋กœ ๋ณด์ด๋Š” '์ •๋‹ต ๋‚ด์šฉ์˜ ํ•ด์„ค' ์ˆจ๊ฒจ๋†“๊ธฐ
        quizResult.style.display = "none";
    }
    updateQuiz();       // ํ•จ์ˆ˜์˜ ๊ฐ’ ์ถœ๋ ฅ



    // 05. ์ •๋‹ต ํ™•์ธ ๋ฐ ๊ฒฐ๊ณผ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ : ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ •๋‹ต == ๋ฌธ์ œ ์ •๋‹ต์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”,
    // ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•œ ๋ฒ„ํŠผ input --> checked ํ‘œ์‹œ๋œ ๊ฒƒ์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
    // ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ, ์„ธ๋ฒˆ์งธ, ๋„ค๋ฒˆ์จฐ ๋ฒ„ํŠผ์— ์ฒดํฌ๊ฐ€ ๋๋Š”์ง€ ๊ฐ๊ฐ ํ™•์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ž.
    // ๋ฌธ์ œ ์ถœ๋ ฅ์˜ ๊ฒฝ์šฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•จ์ˆ˜๋กœ ๊ฐ์‹ธ์„œ ํ˜น์‹œ ๋ชจ๋ฅผ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•จ

    function answerQuiz(){

        for( i=0; i<quizSelect.length; i++){
            if(quizSelect[i].checked == true){    // ๋ณด๊ธฐ์˜ ๋™๊ทธ๋ผ๋ฏธ์— ์ฒดํฌ๊ฐ€ ๋œ ์ƒํƒœ๋ผ๋ฉด,
                  // ์ฒดํฌ๋œ ๋ฒˆํ˜ธ == ์ •๋‹ต ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ ํ›„์—
                  if(quizSelect[i].value == quizInfo[0].answerResult){  
                                // value ๋Š” ๋ณด๊ธฐ์˜ ์ด๋ฆ„ ๊ฐ’์„ ์˜๋ฏธ. ์—ฌ๊ธฐ์„œ๋Š” div value ์— ์ž…๋ ฅํ•œ ์ˆซ์ž 1,2,3,4
                    // alert("์ •๋‹ต")   ์ž„์‹œ๋กœ ๊ฒฐ๊ณผ ํ™•์ธ
                    quizView.classList.add("like");       // ๊ฐ•์•„์ง€์˜ ์›ƒ๋Š” ํ‘œ์ •์„ ์ถœ๋ ฅํ•˜๊ณ 
                  } else {                                // ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด
                    // alert("์˜ค๋‹ต")
                    quizView.classList.add("dislike");     // ๊ฐ•์•„์ง€์˜ ์šฐ๋Š” ํ‘œ์ •์„ ์ถœ๋ ฅํ•ด๋ผ
                    quizResult.style.display = "block";
                    quizConfirm.style.display = "none";
                  }
            } else {

            }
        }
    }



    // 06. ์ •๋‹ต ๋ฒ„ํŠผ์˜ ๋™์ž‘ ์„ค์ •ํ•˜๊ธฐ
    quizConfirm.addEventListener("click", answerQuiz);      // ์ •๋‹ต ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด, ๋‹ต๋ณ€ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ผ

03. ๊ฒฐ๊ณผ๋ณด๊ธฐ

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€