HTML/CSS
JavaScript

Quiz Popup

The quiz encourages participation while educating users in a fun way

 
								<head>
								<style>
									.quiz-container {
										display: none;
										position: fixed;
										top: 0;
										left: 0;
										width: 100%;
										height: 100%;
										background-color: rgba(0, 0, 0, 0.5);
										z-index: 1000;
										font-family: 'Arial', sans-serif;
									}
									
									.startquiz_wrap{
										top: 40%;
								display: flex;
								width: fit-content;
								height: 38px;
								padding: 0px 20px;
								white-space: nowrap;
								-webkit-box-pack: center;
								justify-content: center;
								-webkit-box-align: center;
								align-items: center;
								border-radius: 6px 6px 0px 0px;
								border: 0px;
								cursor: pointer;
								font-size: 1em;
								bottom: 50%;
								gap: 10px;
								transform-origin: center bottom;
								pointer-events: all;
								position: fixed;
								left: auto;
								right: 0px;
								transform: translate(50%, 0px) rotate(-90deg);
								background: #dd5041 !important;
								color: rgb(252, 253, 253) !important;
								fill: rgb(252, 253, 253) !important;
								z-index: 99;
									}
							
									.quiz-popup {
										position: absolute;
										top: 50%;
										left: 50%;
										transform: translate(-50%, -50%);
										background: white;
										padding: 2rem;
										border-radius: 15px;
										box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
										width: 90%;
										max-width: 500px;
										animation: popIn 0.5s ease-out;
									}
							
									@keyframes popIn {
										0% {
											transform: translate(-50%, -50%) scale(0.3);
											opacity: 0;
										}
										100% {
											transform: translate(-50%, -50%) scale(1);
											opacity: 1;
										}
									}
							
									.quiz-header {
										text-align: center;
										margin-bottom: 2rem;
									}
							
									.quiz-title {
										color: #333;
										font-size: 1.5rem;
										margin-bottom: 0.5rem;
									}
							
									.quiz-score {
										font-size: 1.2rem;
										color: #666;
									}
							
									.quiz-content {
										margin-bottom: 2rem;
									}
							
									.question {
										font-size: 1.2rem;
										color: #333;
										margin-bottom: 1rem;
									}
							
									.options {
										display: grid;
										gap: 1rem;
									}
							
									.option {
										padding: 1rem;
										border: 2px solid #ddd;
										border-radius: 8px;
										cursor: pointer;
										transition: all 0.3s ease;
										background: white;
									}
							
									.option:hover {
										background: #f5f5f5;
										transform: translateY(-2px);
									}
							
									.option.correct {
										background: #4CAF50;
										color: white;
										border-color: #4CAF50;
									}
							
									.option.incorrect {
										background: #f44336;
										color: white;
										border-color: #f44336;
									}
							
									.quiz-footer {
										text-align: center;
									}
							
									.next-btn {
										padding: 0.8rem 2rem;
										background: #dd5041;
										color: white;
										border: none;
										border-radius: 5px;
										cursor: pointer;
										font-size: 1rem;
										transition: background 0.3s ease;
									}
							
									.next-btn:hover {
										background: #1976D2;
									}
							
									.progress-bar {
										width: 100%;
										height: 10px;
										background: #ddd;
										border-radius: 5px;
										margin-bottom: 1rem;
									}
							
									.progress {
										height: 100%;
										background: #dd5041;
										border-radius: 5px;
										transition: width 0.3s ease;
									}
							
									.feedback {
										text-align: center;
										margin-top: 1rem;
										font-size: 1.1rem;
										min-height: 1.5rem;
									}
							
									.celebration {
										position: absolute;
										pointer-events: none;
										animation: celebrate 1s ease-out forwards;
									}
							
									@keyframes celebrate {
										0% {
											transform: translateY(0);
											opacity: 1;
										}
										100% {
											transform: translateY(-100px);
											opacity: 0;
										}
									}
								</style>
							</head>
							<body>
								<button class="startquiz_wrap" onclick="startQuiz()">Start Quiz</button>
							
								<div class="quiz-container" id="quizContainer">
									<div class="quiz-popup">
										<div class="quiz-header">
											<div class="quiz-title">Plaeto Quiz Challenge</div>
											<div class="quiz-score">Score: <span id="score">0</span></div>
										</div>
										
										<div class="progress-bar">
											<div class="progress" id="progress"></div>
										</div>
							
										<div class="quiz-content">
											<div class="question" id="question"></div>
											<div class="options" id="options"></div>
										</div>
							
										<div class="feedback" id="feedback"></div>
							
										<div class="quiz-footer">
											<button class="next-btn" id="nextBtn" onclick="nextQuestion()" style="display: none;">Next Question</button>
										</div>
									</div>
								</div>
															</body>

							
Note: In the console, type 'allow pasting,' and then you can paste the code below.
 
								const questions = [
								{
									question: "What's the best way to keep your feet healthy?",
									options: [
										"Wearing tight shoes",
										"Using proper fitting shoes",
										"Walking barefoot always",
										"Wearing the same shoes everyday"
									],
									correct: 1
								},
								{
									question: "Which feature is most important in children's shoes?",
									options: [
										"Proper fit and comfort",
										"Fancy designs",
										"Brand name",
										"Cheap price"
									],
									correct: 0
								},
								{
									question: "How often should growing children's feet be measured?",
									options: [
										"Once a year",
										"Every 3-4 months",
										"Never",
										"Only when shoes feel tight"
									],
									correct: 1
								}
							];
					
							let currentQuestion = 0;
							let score = 0;
							let isAnswered = false;
					
							function startQuiz() {
								document.getElementById('quizContainer').style.display = 'block';
								showQuestion();
								updateProgress();
							}
					
							function showQuestion() {
								const question = questions[currentQuestion];
								document.getElementById('question').textContent = question.question;
								
								const optionsContainer = document.getElementById('options');
								optionsContainer.innerHTML = '';
								
								question.options.forEach((option, index) => {
									const button = document.createElement('div');
									button.className = 'option';
									button.textContent = option;
									button.onclick = () => checkAnswer(index);
									optionsContainer.appendChild(button);
								});
					
								document.getElementById('nextBtn').style.display = 'none';
								document.getElementById('feedback').textContent = '';
								isAnswered = false;
							}
					
							function checkAnswer(selectedIndex) {
								if (isAnswered) return;
								
								isAnswered = true;
								const correct = questions[currentQuestion].correct;
								const options = document.querySelectorAll('.option');
								
								options[correct].classList.add('correct');
								
								if (selectedIndex === correct) {
									score += 10;
									document.getElementById('score').textContent = score;
									document.getElementById('feedback').textContent = 'Correct! +10 points';
									createCelebration(options[selectedIndex]);
								} else {
									options[selectedIndex].classList.add('incorrect');
									document.getElementById('feedback').textContent = 'Wrong answer. Try again!';
								}
								
								document.getElementById('nextBtn').style.display = 'block';
							}
					
							function nextQuestion() {
								currentQuestion++;
								
								if (currentQuestion >= questions.length) {
									showFinalScore();
									return;
								}
								
								showQuestion();
								updateProgress();
							}
					
							function updateProgress() {
								const progress = ((currentQuestion + 1) / questions.length) * 100;
								document.getElementById('progress').style.width = `${progress}%`;
							}
					
							function showFinalScore() {
								const quizContent = document.querySelector('.quiz-content');
								quizContent.innerHTML = `
									<div>Quiz Complete!</div>
									<div>Your final score: ${score} points</div>
									<div>Thank you for playing!</div>
								`;
								document.getElementById('nextBtn').style.display = 'none';
							}
					
							function createCelebration(element) {
								const rect = element.getBoundingClientRect();
								const celebration = document.createElement('div');
								celebration.className = 'celebration';
								celebration.textContent = '+10';
								celebration.style.left = `${rect.left + rect.width / 2}px`;
								celebration.style.top = `${rect.top}px`;
								document.body.appendChild(celebration);
								
								setTimeout(() => celebration.remove(), 1000);
							}