728x90
๋ฐ์ํ

โญ๏ธ ๊ฐ๊ด์ ๋ค์ ๋ฌธํญ (์ ๋ต ์ค๋ต ํ์ธ) โญ๏ธ
01. ๋ง๋๋ ์์
1) ์ถ๋ ฅํ ๋ด์ฉ์ด ๋ค์ด์๋ ์์ ์ ํํ๊ธฐ
2) ์ง๋ฌธ๊ณผ ์ ๋ต ๋ด์ฉ, ํ์ํ ๊ฐ ์
๋ ฅํ๊ธฐ
3) ์ง๋ฌธ ๋ด์ฉ ์ถ๋ ฅํ๊ธฐ
4) ์ ๋ต ๋ด์ฉ ์จ๊ฒจ๋๊ธฐ
5) ์ ๋ต ํ์ธ ๋ฐ ๊ฒฐ๊ณผ๊ฐ ์ค์ ํ๊ธฐ
6) ์ ๋ต ๋ฒํผ์ ๋์ ์ค์ ํ๊ธฐ
02. < script > ์ ์์ฑํ๊ธฐ
// ๋ฌธ์ ์ ๋ณด const quizInfo = [ { answerType: "์น ๋์์ธ ๊ธฐ๋ฅ์ฌ (2014๋
01ํ)", answerNum: "1", answerAsk: "๋ค์์ ๋์์ธ ์๋ฆฌ ์ค ๋ฆฌ๋ฌ์ ํด๋น๋์ง ์๋ ๊ฒ์?", answerChoice: { 1: "์ ์ด", 2: "๊ฐ์กฐ", 3: "๊ท ์ผ", 4: "์ ์ฆ", }, answerResult: "3", answerEx: "3๋ฒ // '๋ฆฌ๋ฌ(์จ๋)'์ ๊ฐ ๋ถ๋ถ ์ฌ์ด์ ์๊ฐ์ ์ธ ๊ฐํ ํ๊ณผ ์ฝํ ํ์ด ๊ท์น์ ์ผ๋ก ์ฐ์๋ ๋ ์๊ธฐ๋ ๋์์ธ์ ์๋ฆฌ๋ฅผ ๋งํฉ๋๋ค. '๊ท ์ผ'์ ๋ถํผ, ์ฆ๋ ๋ฑ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ์ ์์ฑ์์ ์๊ฐ์ ์ธ ์์ ๊ฐ์ ์ด๋ฃจ๋ ๊ฒ์ด๋ฉฐ, ๋ฆฌ๋ฌ์ ํด๋น๋์ง ์์ต๋๋ค.", // ์ ๋ต ํด์ค }, { answerType: "์น ๋์์ธ ๊ธฐ๋ฅ์ฌ (2014๋
01ํ)", answerNum: "2", answerAsk: "ํด์์ ์๋ ์กฐ์ฝ๋์ ์์ฐ์ ํ์ ์ํด ํ์ฐ์ ์ผ๋ก ๋ง๋ค์ด์ง ํํ๋ผ๋ ์์ฐ์ ๋ฒ์น์ด ๋ง๋ ์์ฐ์ ํํ๋ฅผ ์ฃผ์ฅํ ์ฌ๋์?", answerChoice: { 1: "๋ฅด ์ฝ๋ฅด๋ท์ง์", 2: "ํํ๋ฅ", 3: "์๋ฅธํ์", 4: "๋ชจํ๋ก๋๊ธฐ", }, answerResult: "4", answerEx: "4๋ฒ // ๋ชจํ๋ก๋๊ธฐ์ ์ฌ์์์ ์ง๋ฌธ๋ด์ฉ์ ๋ํ ์ ๋ณด๋ฅผ ๋์ ํ ๋ชป์ฐพ๊ฒ ์ต๋๋ค. 'ํด์์ ์๋ ๋ฌด์ธ๋์์ ํ๋ก๋๊ธฐ'๋ผ๊ณ '๋ชจํ๋ก๋๊ธฐ'๋ฅผ ๊ธฐ์ตํด์ฃผ์ธ์ :) ", }, // ...(์๋ต)...์ด์ด์ ๊ณ์ ์์ฑํฉ๋๋ค. // ์ ํ์ const quizWrap = document.querySelector(".quiz__wrap"); function updateQuiz(){ const exam = []; quizInfo.forEach((question, number) => { exam.push(` <div class="quiz"> <span class="quiz__type">${question.answerType}</span> <h2 class="quiz__question"> <span class="number">${question.answerNum}. </span> <div class="ask">${question.answerAsk}</div> </h2> <div class="quiz__view"> <div class="true">์ ๋ต์
๋๋ค!</div> <div class="false">ํ๋ ธ์ต๋๋ค!!</div> <div class="dog"> <div class="head"> <div class="ears"></div> <div class="face"></div> <div class="eyes"> <div class="teardrop"></div> </div> <div class="nose"></div> <div class="mouth"> <div class="tongue"></div> </div> <div class="chin"></div> </div> <div class="body"> <div class="tail"></div> <div class="legs"></div> </div> </div> </div> <div class="quiz__answer"> <div class="quiz__selects"> <label for="select1${number}"> <input type="radio" id="select1${number}" class="select" name="select${number}" value="1"> <span class="choice">${question.answerChoice[1]}</span> </label> <label for="select2${number}"> <input type="radio" id="select2${number}" class="select" name="select${number}" value="2"> <span class="choice">${question.answerChoice[2]}</span> </label> <label for="select3${number}"> <input type="radio" id="select3${number}" class="select" name="select${number}" value="3"> <span class="choice">${question.answerChoice[3]}</span> </label> <label for="select4${number}"> <input type="radio" id="select4${number}" class="select" name="select${number}" value="4"> <span class="choice">${question.answerChoice[4]}</span> </label> </div> </div> </div> `); }); exam.push(` <div class="quiz__confirm"> <button class="check">์ ๋ต ํ์ธํ๊ธฐ</button> <div class="ex"></div> </div> `); quizWrap.innerHTML = exam.join(''); } updateQuiz(); //์ ๋ต ํ์ธ function answerQuiz(){ const quizSelects = document.querySelectorAll(".quiz__selects"); //๋ณด๊ธฐ const quizView = document.querySelectorAll(".quiz__view"); //๊ฐ์์ง //์ฌ์ฉ์๊ฐ ์ฒดํฌํ ๋ผ๋์ค ๋ฐ์ค == ๋ฌธ์ ์ ๋ต quizInfo.forEach((question, number) => { const quizSelectsWrap = quizSelects[number]; //์ ์ฒด ๋ณด๊ธฐ ๋ฐ์ค const userSelector = `input[name=select${number}]:checked`; //์ฌ์ฉ์๊ฐ ํด๋ฆฐํ ๋ผ๋์ค ๋ฐ์ค const userAnswer = (quizSelectsWrap.querySelector(userSelector) || {}).value const quizView = document.querySelectorAll(".quiz__view"); console.log(quizSelects) if(userAnswer == question.answerResult){ console.log("์ ๋ต") quizView[number].classList.add("like"); } else { console.log("์ค๋ต") quizView[number].classList.add("dislike"); const div = document.createElement("div"); quizSelectsWrap.appendChild(div).innerHTML = `<p class="result">${question.answerEx}</p>`; } }); } document.querySelector(".quiz__confirm .check").addEventListener("click", answerQuiz); // ๋งจ ๋ฐ์ ์์ด์ผ ํจ.
03. ๊ฒฐ๊ณผ๋ณด๊ธฐ
728x90
๋ฐ์ํ
'Javascript > Effect' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
search Effect (2) (3) | 2022.08.18 |
---|---|
search Effect (1) (2) | 2022.08.18 |
ํด์ฆ ๋ง๋ค๊ธฐ (4) ๊ฐ๊ด์ ๋จ์ผ ๋ฌธํญ (7) | 2022.08.09 |
ํด์ฆ ๋ง๋ค๊ธฐ (3) ์ฃผ๊ด์ ๋ค์ ๋ฌธํญ (6) | 2022.08.05 |
ํด์ฆ ๋ง๋ค๊ธฐ (2) ์ฃผ๊ด์ ๋จ์ผ ๋ฌธํญ (4) | 2022.08.04 |
๋๊ธ