퀴즈사이트 만들기 2

퀴즈 페이지 만들기

지난 포스팅에서 기본적인 퀴즈사이트 레이아웃을 만들었다면 이번에는 정답을 입력한 후 입력값에 따라 강아지의 움직임이 달라지는 사이트를 만드는 방법에 대해 알아보겠습니다.

코드 블록

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>퀴즈이펙트02</title>

    <link rel="stylesheet" href="http://lee3ll.m/CSS/quiz.css">
    <link rel="stylesheet" href="CSS/reset.css">
    

</head>
<body>
    <header id="header">
        <h1><a href="http://lee3ll.javascript14.html"></a> Quiz <em>주관식 확인하기 유형</em></h1>
        <ul>
            <li><a href="quizEffect01.html">1</a></li>
            <li class="active"><a href="quizEffect02.html">2</a></li>
        </ul>
    </header>
    <!-- header -->

    <main id="main">
        <div class="quiz__wrap">
            <div class="quiz">
                <div class="quiz__header">
                    <h2 class="quiz__title"><span></span> <em></em></h2>
                    
                </div>
                <div class="quiz__main">
                    <div class="quiz__question">
                        <em></em>. <span></span>
                    </div>
                    <div class="quiz__view">
                        <div class="dog__wrap">
                            <div class="card-container">
                              <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>
                    </div>
                    <div class="quiz__answer">
                        <input class="input" type="text" placeholder="정답을 적어주세요!">
                        <button class="confirm">정답 확인하기</button>
                        <div class="result">연변대비</div>
                    </div>
                </div>
                <div class="quiz__footer">
                    <div class="quiz__desc">설명</div>
                </div>
            </div>
        </div>
    </main>
    <!-- main -->

    <footer id="footer">
        <a href="mailto:[email protected]">[email protected]</a>
    </footer>
    <!-- footer -->
    <script>
      //선택자
      const quizWrap = document.querySelector(".quiz__wrap");
        const quizTitle = quizWrap.querySelector(".quiz__title span");
        const quizTime = quizWrap.querySelector(".quiz__title em");
        const quizQuestion = quizWrap.querySelector(".quiz__question span");
        const quizQuestionNum = quizWrap.querySelector(".quiz__question em");
        const quizDesc = quizWrap.querySelector(".quiz__desc");
        const quizAnswerConfirm = quizWrap.querySelector(".quiz__answer .confirm");
        const quizAnswerResult = quizWrap.querySelector(".quiz__answer .result");
        const quizAnswerInput = quizWrap.querySelector(".quiz__answer .input");

        const dogWrap = quizWrap.querySelector(".dog__wrap")
        const quizFooter = quizWrap.querySelector(".quiz__footer");

      //문제 정보
        const infoType = "정보처리 기능사";
        const infoTime = "2011년 5회";
        const infoNumber = "2";
        const infoQuestion = "프레젠테이션에서 화면 전체를 전환하는 단위를 의미하는것은?";
        const infoAnswer = "슬라이드";
        const infoDesc ="슬라이드는 프레젠테이션의 화면 전체를 말하고 개체는 화면을 구성하는 개개의 요소를 말한다";

        //문제 출력
        quizTitle.textContent = infoType;
        quizTime.textContent = infoTime;
        quizQuestionNum.innerText = infoNumber;
        quizQuestion.innerText = infoQuestion;
        quizDesc.textContent = infoDesc;
        quizAnswerResult.textContent  = infoAnswer;
        
        //정답 &해설 숨기기
        quizAnswerResult.style.display = "none";
        quizFooter.style.display = "none";

        //사용자 정답
        quizAnswerConfirm.addEventListener("click", function(){
            const userAnswer = quizAnswerInput.value.trim();

            quizAnswerInput.style.display = "none";    //인풋박스 숨김
            quizAnswerConfirm.style.display = "none";   //정답 확인 버튼 숨김
            quizAnswerResult.style.display = "block";   //정답 보이기
            quizFooter.style.display = "block";         //해설 보이기
            
            if(infoAnswer == userAnswer){
                // alert("정답입니다.")
                dogWrap.classList.add("like");              //정답 버튼 제거, 강아지 스마일
            } else {
                // alert("오답입니다.")
                dogWrap.classList.add("dislike");
            }
        });
    </script>

</body>
</html>

코드 추가 설명

기입 사용자가 값을 입력할 수 있도록 텍스트 필드, 확인란, 라디오 버튼 등을 만듭니다.
요소는 다른 속성을 가질 수 있습니다. (예: ‘id’ , ‘name’, ‘value’, ‘required’, ‘plaoeholder’, ‘plaoeholder’, ‘disable’)
HTML 입력 요소에 사용되는 속성 중 하나입니다. 이 속성은 사용자가 입력한 값을 나타내며 문자열 데이터를 포함합니다.
손질 JavaScript에서 문자열 양 끝의 공백(공백, 탭, 줄 바꿈 등)을 제거하는 기능입니다.
‘trim’ 함수는 String 개체의 메서드로 노출됩니다. 따라서 String 객체의 변수 또는 리터럴 값 뒤에 ‘trim()’을 추가하여 사용할 수 있습니다.