Веб-приложение для викторины на умножение с использованием HTML CSS и JavaScript
Опубликовано: 28 Декабря, 2022
В этой статье мы увидим, как создать веб-приложение для викторины на умножение с использованием HTML, CSS и JavaScript.
Описание веб-приложения: в этом веб-приложении случайные вопросы появляются один за другим на основе базового умножения. Если вы дадите правильный ответ, то он увеличится на +1, а если вы дадите неправильный ответ, то он уменьшится на -1.
Структура файла: есть три файла index.html (файл HTML), дизайн всех элементов веб-страницы с использованием style.css (файл CSS) и предоставление всей логической функциональности с помощью script.js (файл JavaScript).
- index.html
- стиль.css
- script.js
Условие:
- Formaninput теги в HTML.
- Отображение Flex в CSS.
- Базовая концепция DOM и локальное хранилище в JavaScript.
HTML-файл:
- Создайте один класс контейнера в котором присутствуют все элементы.
- Внутри контейнера создайте форму и удалите атрибут действия.
- Форма содержит заголовки вопросов и оценок с одним полем ввода для ответов пользователя и кнопкой «Отправить».
index.html
<!DOCTYPE html> < html lang = "en" > < 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 >Multiplication Quiz WebApp</ title > < link rel = "stylesheet" href = "style.css" > </ head > < body > < div class = "container" > < h1 >GeeksforGeeks</ h1 > < h3 >< b > Multiplication Quiz App </ b ></ h3 > < form id = "form" > < p id = "score" >score : 0</ p > < h1 id = "question" >What is X Multiply of X?</ h1 > < input type = "number" id = "inp" placeholder = "Enter Your Answer" autofocus autocomplete = "off" > < button id = "btn" type = "submit" >Submit</ button > </ form > </ div > < script src = "script.js" ></ script > </ body > </ html > |
CSS-файл:
- Удалите поля и отступы по умолчанию из тела.
- Установите display flex в контейнере и выровняйте все элементы по центру по свойствам flex.
- Остальные элементы разработаны в соответствии с потребностями разработчика.
style.css
body { margin : 0 ; padding : 0 ; font-family : sans-serif ; } .container { width : 100% ; height : 100 vh; display : flex; justify- content : center ; align-items: center ; text-align : center ; flex- direction : column; } h 1 { font-size : 25px ; font-weight : 700 ; margin-bottom : 20px ; color : green ; } h 3 { font-size : 20px ; font-weight : 700 ; margin : -10px 0 20px ; } #form { padding : 10px 20px ; margin : 10px ; background-color : white ; border-radius: 10px ; box-shadow: 0 0 20px rgba( 0 , 0 , 0 , 0.5 ); } #score { font-size : 18px ; text-align : right ; font-weight : 700 ; color : green ; } #question { color : green ; font-weight : 700 ; font-size : 25px ; } #inp { color : green ; border : 3px solid green ; border-radius: 5px ; padding : 15px 0 ; margin : 10px 0px ; display : block ; width : 100% ; box-sizing: border-box; font-size : 15px ; font-weight : 700 ; text-align : center ; outline : none ; } #inp::placeholder { color : green ; } #btn { background-color : green ; outline : none ; border : none ; border-radius: 5px ; padding : 15px 0 ; margin : 10px 0px ; display : block ; width : 100% ; box-sizing: border-box; font-size : 18px ; font-weight : 700 ; text-align : center ; color : white ; letter-spacing : 1px ; } |
Файл JavaScript:
- Создайте две переменные для хранения случайного числа с помощью математического объекта. В вопросе добавьте эти два числа с помощью свойства JavaScript innerText. Кроме того, сохраните ответ этих двух случайных чисел в одной переменной.
- Если пользователь нажимает кнопку «Отправить», он сравнивает ответ пользователя и правильный ответ. Если оба равны, то увеличьте оценку на +1, в противном случае уменьшите оценку на -1.
- Добавьте счет в локальное хранилище с помощью метода localstorage.getItem().
script.js
const questionElement = document.getElementById( "question" ); let num1 = Math.floor(Math.random() * 10); let num2 = Math.floor(Math.random() * 10); let correctAnswer = num1 * num2; questionElement.innerText = `What is ${num1} Multiply by ${num2}?`; const form = document.getElementById( "form" ); const input = document.getElementById( "inp" ); let scoreElement = document.getElementById( "score" ); let score = Number(localStorage.getItem( "score" )); if (!score) { score = 0; } scoreElement.textContent = `score : ${score}`; form.addEventListener( "submit" , function () { let userAnswer = +input.value; if (correctAnswer === userAnswer) { score++; updateScore(); } else { score--; updateScore(); } }); function updateScore() { localStorage.setItem( "score" ,String(score)); } // Clear Local Storage // localStorage.removeItem("score"); |
Output:

Multiplication Quiz WebApp