IN, ON or AT? Choose the correct preposition. Question 1 of 20 Score: 0 #mafen-inonat-quiz { max-width: 700px; margin: 30px auto; padding: 25px; background: #fdfdfd; border: 1px solid #e0e0e0; border-radius: 14px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; box-shadow: 0 5px 15px rgba(0,0,0,0.06); box-sizing: border-box; } #mafen-inonat-quiz *, #mafen-inonat-quiz *::before, #mafen-inonat-quiz *::after { box-sizing: border-box; } .mafen-ioa-header { text-align: center; margin-bottom: 25px; } .mafen-ioa-header h2 { margin: 0 0 7px; color: #2c3e50; font-size: 27px; font-weight: 700; } .mafen-ioa-header p { margin: 0; color: #7f8c8d; font-size: 15px; } .mafen-ioa-progress { margin-bottom: 25px; } .mafen-ioa-progress-info { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 14px; color: #566573; } .mafen-ioa-progress-info strong { color: #2c3e50; } .mafen-ioa-progress-bar { width: 100%; height: 9px; background: #ecf0f1; border-radius: 10px; overflow: hidden; } #mafen-ioa-progress-fill { width: 5%; height: 100%; background: #3498db; border-radius: 10px; transition: width 0.3s ease; } .mafen-ioa-card { background: #ffffff; padding: 25px; margin-bottom: 20px; border-radius: 10px; border-left: 5px solid #3498db; box-shadow: 0 3px 8px rgba(0,0,0,0.04); } .mafen-ioa-topic { display: inline-block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: #3498db; font-weight: 700; margin-bottom: 10px; } .mafen-ioa-question { font-size: 18px; line-height: 1.6; font-weight: 600; color: #2c3e50; margin-bottom: 20px; } .mafen-ioa-options { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; } .mafen-ioa-option { width: 100%; padding: 14px 15px; background: #f8f9fa; border: 1px solid #dcdde1; border-radius: 7px; text-align: center; font-size: 16px; font-weight: 600; color: #2c3e50; cursor: pointer; transition: all 0.2s ease; } .mafen-ioa-option:hover:not(:disabled) { background: #e1b12c; color: #ffffff; border-color: #e1b12c; transform: translateY(-1px); } .mafen-ioa-option:disabled { cursor: default; } .mafen-ioa-option.correct { background: #2ecc71 !important; color: #ffffff !important; border-color: #2ecc71 !important; } .mafen-ioa-option.incorrect { background: #e74c3c !important; color: #ffffff !important; border-color: #e74c3c !important; } .mafen-ioa-feedback { margin-top: 18px; padding: 14px 16px; border-radius: 7px; font-size: 14px; line-height: 1.6; } .mafen-ioa-feedback.correct-feedback { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; } .mafen-ioa-feedback.incorrect-feedback { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } .mafen-ioa-feedback strong { display: block; margin-bottom: 4px; } .mafen-ioa-next { width: 100%; margin-top: 20px; padding: 13px 20px; border: none; border-radius: 7px; background: #3498db; color: white; font-size: 15px; font-weight: 600; cursor: pointer; } .mafen-ioa-next:hover { background: #2980b9; } #mafen-ioa-result { text-align: center; margin-top: 25px; padding: 30px 20px; background: #ebf3f9; border-radius: 10px; } .mafen-ioa-result-title { font-size: 28px; font-weight: 700; color: #2c3e50; margin-bottom: 10px; } .mafen-ioa-result-score { font-size: 42px; font-weight: 800; color: #3498db; margin: 10px 0; } .mafen-ioa-result-message { font-size: 16px; color: #566573; margin-bottom: 20px; } .mafen-ioa-restart { padding: 12px 25px; background: #2c3e50; color: #ffffff; border: none; border-radius: 7px; font-size: 15px; font-weight: 600; cursor: pointer; } .mafen-ioa-restart:hover { background: #1f2d3a; } @media (max-width: 600px) { #mafen-inonat-quiz { margin: 15px auto; padding: 18px; } .mafen-ioa-header h2 { font-size: 23px; } .mafen-ioa-card { padding: 18px; } .mafen-ioa-question { font-size: 16px; } .mafen-ioa-options { grid-template-columns: 1fr; } .mafen-ioa-result-score { font-size: 35px; } } document.addEventListener("DOMContentLoaded", function () { const quizData = [ { topic: "Time - Months", question: "My birthday is ___ July.", options: [ { text: "in", correct: true, reason: "Correct! We use 'in' with months: in July, in January, in December." }, { text: "on", correct: false, reason: "We use 'on' with specific days and dates, not months alone." }, { text: "at", correct: false, reason: "We do not normally use 'at' with months." } ] }, { topic: "Time - Days", question: "We have an English lesson ___ Monday.", options: [ { text: "in", correct: false, reason: "We use 'on' with days of the week." }, { text: "on", correct: true, reason: "Correct! We use 'on' with days: on Monday, on Friday, on Sunday." }, { text: "at", correct: false, reason: "'At' is used with specific clock times, not days." } ] }, { topic: "Time - Clock Times", question: "The meeting starts ___ 9 o'clock.", options: [ { text: "in", correct: false, reason: "We use 'at' with specific clock times." }, { text: "on", correct: false, reason: "We use 'on' with days and dates." }, { text: "at", correct: true, reason: "Correct! We say at 9 o'clock, at 7:30, at noon." } ] }, { topic: "Time - Years", question: "She was born ___ 2005.", options: [ { text: "in", correct: true, reason: "Correct! We use 'in' with years." }, { text: "on", correct: false, reason: "'On' is used with specific dates and days." }, { text: "at", correct: false, reason: "'At' is not used with years." } ] }, { topic: "Dates", question: "The exam is ___ 15 June.", options: [ { text: "in", correct: false, reason: "We use 'on' with specific dates." }, { text: "on", correct: true, reason: "Correct! Specific dates take 'on': on 15 June, on 3 March." }, { text: "at", correct: false, reason: "'At' is not used with specific dates." } ] }, { topic: "Places - Inside", question: "There are many students ___ the classroom.", options: [ { text: "in", correct: true, reason: "Correct! 'In' is used when someone or something is inside an enclosed space." }, { text: "on", correct: false, reason: "'On' normally indicates a surface." }, { text: "at", correct: false, reason: "'At' generally refers to a point or location rather than being inside the room." } ] }, { topic: "Places - Surface", question: "Your keys are ___ the table.", options: [ { text: "in", correct: false, reason: "The keys are on the surface of the table." }, { text: "on", correct: true, reason: "Correct! We use 'on' for something touching a surface." }, { text: "at", correct: false, reason: "'At' is not used to describe something resting on a surface." } ] }, { topic: "Places - Point", question: "I'll meet you ___ the bus stop.", options: [ { text: "in", correct: false, reason: "The bus stop is treated as a particular point or location." }, { text: "on", correct: false, reason: "'On' is not normally used with 'bus stop' in this meaning." }, { text: "at", correct: true, reason: "Correct! We use 'at' for a specific point or location: at the bus stop." } ] }, { topic: "Transport", question: "I usually read books ___ the bus.", options: [ { text: "in", correct: false, reason: "For buses and trains, we normally use 'on'." }, { text: "on", correct: true, reason: "Correct! We say on the bus, on the train, on the plane." }, { text: "at", correct: false, reason: "'At' is not normally used with bus in this meaning." } ] }, { topic: "Transport", question: "She is waiting ___ the airport.", options: [ { text: "in", correct: false, reason: "The airport is treated as a location or point here." }, { text: "on", correct: false, reason: "'On the airport' is incorrect in this context." }, { text: "at", correct: true, reason: "Correct! We normally say 'at the airport' when referring to the location." } ] }, { topic: "Parts of the Day", question: "I usually study ___ the morning.", options: [ { text: "in", correct: true, reason: "Correct! We say in the morning, in the afternoon and in the evening." }, { text: "on", correct: false, reason: "'On' is normally used with days and dates." }, { text: "at", correct: false, reason: "'At' is normally used with night, not 'the morning'." } ] }, { topic: "Parts of the Day", question: "We usually go for a walk ___ the evening.", options: [ { text: "in", correct: true, reason: "Correct! We say in the evening." }, { text: "on", correct: false, reason: "'On' is used with days and dates." }, { text: "at", correct: false, reason: "The usual expression is 'in the evening'." } ] }, { topic: "Night", question: "I don't like driving ___ night.", options: [ { text: "in", correct: false, reason: "The standard expression is 'at night'." }, { text: "on", correct: false, reason: "'On' is not normally used with 'night' in this general expression." }, { text: "at", correct: true, reason: "Correct! We say 'at night' when talking about nighttime generally." } ] }, { topic: "Weekends", question: "We usually visit our grandparents ___ the weekend.", options: [ { text: "in", correct: false, reason: "In British English, 'at the weekend' is the standard expression." }, { text: "on", correct: false, reason: "Although 'on the weekend' is common in American English, British English normally uses 'at the weekend'." }, { text: "at", correct: true, reason: "Correct! In British English, we normally say 'at the weekend'." } ] }, { topic: "Buildings / Locations", question: "There are hundreds of people ___ the cinema.", options: [ { text: "in", correct: true, reason: "Correct! We use 'in' when referring to people being inside a building." }, { text: "on", correct: false, reason: "'On the cinema' is incorrect in this meaning." }, { text: "at", correct: false, reason: "'At the cinema' can refer to the activity/location generally, but 'in the cinema' focuses on being inside the building." } ] }, { topic: "Specific Location", question: "I'll see you ___ the entrance.", options: [ { text: "in", correct: false, reason: "The entrance is treated as a specific point." }, { text: "on", correct: false, reason: "'On the entrance' is incorrect here." }, { text: "at", correct: true, reason: "Correct! We use 'at' for a specific point or location: at the entrance." } ] }, { topic: "Surfaces", question: "There is a beautiful picture ___ the wall.", options: [ { text: "in", correct: false, reason: "The picture is attached to or touching the surface of the wall." }, { text: "on", correct: true, reason: "Correct! We use 'on' with surfaces: on the wall, on the floor, on the table." }, { text: "at", correct: false, reason: "'At' is not used for surfaces." } ] }, { topic: "Cities / Countries", question: "My sister lives ___ London.", options: [ { text: "in", correct: true, reason: "Correct! We use 'in' with cities, countries and larger geographical areas." }, { text: "on", correct: false, reason: "'On' is not normally used with city names." }, { text: "at", correct: false, reason: "'At' is not normally used with cities." } ] }, { topic: "Streets", question: "They live ___ Oxford Street.", options: [ { text: "in", correct: false, reason: "For a street name, we normally use 'on'." }, { text: "on", correct: true, reason: "Correct! We normally say 'on Oxford Street' or 'on Baker Street'." }, { text: "at", correct: false, reason: "'At' can be used for a specific address, but not normally with a street name alone." } ] }, { topic: "Specific Time", question: "The shops close ___ midnight.", options: [ { text: "in", correct: false, reason: "We use 'at' with specific points of time such as midnight." }, { text: "on", correct: false, reason: "'On' is used with days and dates." }, { text: "at", correct: true, reason: "Correct! We say at midnight, at noon, at 6 o'clock." } ] } ]; let currentQuestion = 0; let score = 0; const questionsContainer = document.getElementById("mafen-ioa-questions"); const resultContainer = document.getElementById("mafen-ioa-result"); const currentNumber = document.getElementById("mafen-ioa-current"); const totalNumber = document.getElementById("mafen-ioa-total"); const scoreDisplay = document.getElementById("mafen-ioa-score"); const progressFill = document.getElementById("mafen-ioa-progress-fill"); totalNumber.textContent = quizData.length; function loadQuestion() { const question = quizData[currentQuestion]; currentNumber.textContent = currentQuestion + 1; scoreDisplay.textContent = score; progressFill.style.width = ((currentQuestion + 1) / quizData.length * 100) + "%"; let html = ` ${question.topic} ${currentQuestion + 1}. ${question.question} `; question.options.forEach(function(option, index) { html += ` ${option.text} `; }); html += ` `; questionsContainer.innerHTML = html; const buttons = questionsContainer.querySelectorAll(".mafen-ioa-option"); buttons.forEach(function(button) { button.addEventListener("click", function() { const selectedIndex = parseInt(this.getAttribute("data-index")); checkAnswer(selectedIndex, buttons); }); }); } function checkAnswer(selectedIndex, buttons) { const question = quizData[currentQuestion]; buttons.forEach(function(button) { button.disabled = true; }); const selectedButton = buttons[selectedIndex]; const correctIndex = question.options.findIndex(function(option) { return option.correct === true; }); const correctButton = buttons[correctIndex]; if (question.options[selectedIndex].correct) { score++; selectedButton.classList.add("correct"); } else { selectedButton.classList.add("incorrect"); correctButton.classList.add("correct"); } scoreDisplay.textContent = score; const feedback = document.getElementById("mafen-ioa-feedback"); if (question.options[selectedIndex].correct) { feedback.className = "mafen-ioa-feedback correct-feedback"; feedback.innerHTML = "✓ Correct!" + question.options[selectedIndex].reason; } else { feedback.className = "mafen-ioa-feedback incorrect-feedback"; feedback.innerHTML = "✗ Incorrect." + question.options[selectedIndex].reason + "Correct answer: " + question.options[correctIndex].text; } feedback.style.display = "block"; if (currentQuestion < quizData.length - 1) { const nextButton = document.createElement("button"); nextButton.type = "button"; nextButton.className = "mafen-ioa-next"; nextButton.textContent = "Next Question →"; nextButton.addEventListener("click", function() { currentQuestion++; loadQuestion(); window.scrollTo({ top: questionsContainer.offsetTop - 20, behavior: "smooth" }); }); feedback.parentNode.appendChild(nextButton); } else { const finishButton = document.createElement("button"); finishButton.type = "button"; finishButton.className = "mafen-ioa-next"; finishButton.textContent = "View My Result"; finishButton.addEventListener("click", function() { showResult(); }); feedback.parentNode.appendChild(finishButton); } } function showResult() { questionsContainer.style.display = "none"; const percentage = Math.round((score / quizData.length) * 100); let message = ""; if (percentage >= 90) { message = "Excellent! You have a very strong understanding of IN, ON and AT."; } else if (percentage >= 75) { message = "Very good! You understand the main uses of these prepositions."; } else if (percentage >= 60) { message = "Good effort! Review the differences between time, place and surface expressions."; } else { message = "Keep practising! Pay special attention to dates, times, places and common expressions."; } resultContainer.innerHTML = ` Quiz Complete! ${score} / ${quizData.length} ${percentage}% ${message} ↻ Restart Quiz `; resultContainer.style.display = "block"; document .getElementById("mafen-ioa-restart") .addEventListener("click", restartQuiz); resultContainer.scrollIntoView({ behavior: "smooth", block: "center" }); } function restartQuiz() { currentQuestion = 0; score = 0; resultContainer.style.display = "none"; questionsContainer.style.display = "block"; scoreDisplay.textContent = "0"; loadQuestion(); window.scrollTo({ top: questionsContainer.offsetTop - 20, behavior: "smooth" }); } loadQuestion(); });