Quiz-App Day2

김동현·2022년 12월 20일
0

Quiz-App 2차

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewpoint"
      content="width=device-with,
        initial-scale=1.0"
    />
    <title>Quiz App</title>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js" defer></script>
  </head>

  <body>
    <div class="quiz-container">
      <div class="quiz-header">
      <h2>Question text</h2>
      <ul>
        <li>
          <input type="radio" id="a" name="answer" />
          <label for="a">Question</label>
        </li>
        <li>
          <input type="radio" id="b" name="answer" />
          <label for="b">Question</label>
        </li>
        <li>
          <input type="radio" id="c" name="answer" />
          <label for="c">Question</label>
        </li>
        <li>
          <input type="radio" id="d" name="answer" />
          <label for="d">Question</label>
        </li>
      </ul>
      <button>Submit</button>
    </div>
  </body>
</html>
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;400;600&display=swap");

*{
    box-sizing: border-box;
}

body {
    background-color: #b8c6db;
    background-image: linear-gradient(315deg,#b8c6db 0%, #f5f7fa 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family:"Poppins", sans-serif;
    margin: 0;
    min-height: 100vh;
}

.quiz-container {
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 0 10px 2px rgba(100, 100, 100, 0.1);
    overflow: hidden;
    width: 600px;
    max-width: 100%;
}

.quiz-header {
    padding: 4rem;
}

h2 {
    padding: 1rem;
    text-align: center;
    margin: 0;
}

ul {
    list-style-type: none;
    padding: 0;
}

ul li {
    margin: 1rem 0;
    font-size: 1.2rem;
}

ul li label {
    cursor: pointer;

}

button {
    background-color: #8e44ad;
    border: none;
    color: white;
    cursor: pointer;
    display: block;
    font-family: inherit;
    font-size: 1.1rem;
    width: 100%;
    padding: 1.3rem;
}

button:hover {
    background-color: #732d91;
}
const quizData = [
    {
        question: 'How old is Donghyun?',
        a: '18',
        b: '20',
        c: '22',
        d: '25',
        correct: 'c'
    }, {
        question: 'Which city does Donghyun live in?',
        a: 'Seoul',
        b: 'NewYork',
        c: 'Tokyo',
        d: 'Sydney',
        correct: 'a'
    }, {
        question: 'How tall is Donghyun?',
        a: '170',
        b: '175',
        c: '180',
        d: '185',
        correct: 'c'
    }, {
        question: 'Which country has Donghyun not been to?',
        a: 'Egypt',
        b: 'France',
        c: 'Japan',
        d: 'China',
        correct: 'a'

    }, {
        question: 'What kind of transportation has Donghyun never taken?',
        a: 'Bike',
        b: 'Taxi',
        c: 'Bus',
        d: 'Kayak',
        correct: 'd'
    }
];

const quiz = document.getElementById("quiz");
const answerEls = document.querySelectorAll(".answer");
const questionE1 = document.getElementById("question");

const a_text = document.getElementById("a_text");
const b_text = document.getElementById("b_text");
const c_text = document.getElementById("c_text");
const d_text = document.getElementById("d_text");
const submitBtn = document.getElementById("submit");

let currentQuiz = 0;
let score = 0;

loadQuiz();

function loadQuiz() {
    deselectAnswers(); //한번 클릭하면 다음 질문에 이전 클릭의 흔적이 남지 않게 하는 부분 

    const currentQuizData = quizData[currentQuiz];

    questionE1.innerText = currentQuizData.question;

    a_text.innerText = currentQuizData.a;
    b_text.innerText = currentQuizData.b;
    c_text.innerText = currentQuizData.c;
    d_text.innerText = currentQuizData.d;
    
}

function getSelected() {

    let answer = undefined;

    answerEls.forEach((answerEl) => {
        if(answerEl.checked) {
           answer = answerEl.id;
        }
    });

   return answer;
}

function deselectAnswers() {
    answerEls.forEach((answerEl) => {
       answerEl.checked = false;
    });
}

submitBtn.addEventListener("click", () => {
    // check to see the answer
    const answer = getSelected();

    if (answer){
        if (answer === quizData[currentQuiz].correct) {
            score++;
        }

            currentQuiz++;
            if (currentQuiz < quizData.length) {
                loadQuiz();
            } else {
                quiz.innerHTML = `<h2>You answered correctly at ${score}/${quizData.length} questions.</h2> <buttononclick="location.reload">Reload</button>`;
            }
        }
});
profile
디자인과 개발을 모두 할줄 아는 능력있는 개발자가 되고싶습니다.

0개의 댓글