Таймер, который будет менять вопросы в опросе каждые 30 секунд
Итак, у меня есть код, который я нашел из одного из вопросов в stack overflow. Код представляет собой тест с вопросами, появляющимися один за другим, когда выбран ответ. Мне было интересно, можно ли заставить вопросы меняться не тогда, когда выбран ответ, а через определенное количество времени, скажем, через 30 секунд
var images = { "CSS" : "https://via.placeholder.com/200x50?text=CSS", "HTML" : "https://via.placeholder.com/200x50?text=HTML", "Java" : "https://via.placeholder.com/200x50?text=JAVA", "C#" : "https://via.placeholder.com/200x50?text=C"+encodeURIComponent("#"), "C++" : "https://via.placeholder.com/200x50?text=C"+encodeURIComponent("++"), "C" : "https://via.placeholder.com/200x50?text=C" } function populate() { if (quiz.isEnded()) { showScores(); } else { // show question var element = document.getElementById("question"); element.innerHTML = quiz.getQuestionIndex().text; // show options var choices = quiz.getQuestionIndex().choices; for (var i = 0; i < choices.length; i++) { var element = document.getElementById("choice" + i); element.innerHTML = images[choices[i]]? '<img src="'+images[choices[i]]+'"/>':choices[i]; guess("btn" + i, choices[i]); } showProgress(); } }; function guess(id, guess) { var button = document.getElementById(id); button.onclick = function() { quiz.guess(guess); populate(); } }; function showProgress() { var currentQuestionNumber = quiz.questionIndex + 1; var element = document.getElementById("progress"); element.innerHTML = "Question " + currentQuestionNumber + " of " + quiz.questions.length; }; function showScores() { var gameOverHTML = "<h1>Result</h1>"; gameOverHTML += "<h2 id='score'> Your scores: " + quiz.score + "</h2>"; var element = document.getElementById("quiz"); element.innerHTML = gameOverHTML; }; // create questions var questions = [ new Question("<img src='https://via.placeholder.com/200x50?text=OOP' /><br/>Which one is not an object oriented programming language?", ["Java", "C#", "C++", "C"], "C"), new Question("<img src='https://via.placeholder.com/200x50?text=Web+development' /><br/>Which language is used for styling web pages?", ["HTML", "JQuery", "CSS", "XML"], "CSS"), new Question("There are ____ main components of object oriented programming.", ["1", "6", "2", "4"], "4"), new Question("Which language is used for web apps?", ["PHP", "Python", "Javascript", "All"], "All"), new Question("MVC is a ____.", ["Language", "Library", "Framework", "All"], "Framework") ]; function Question(text, choices, answer) { this.text = text; this.choices = choices; this.answer = answer; } Question.prototype.isCorrectAnswer = function(choice) { return this.answer === choice; } function Quiz(questions) { this.score = 0; this.questions = questions; this.questionIndex = 0; } Quiz.prototype.getQuestionIndex = function() { return this.questions[this.questionIndex]; } Quiz.prototype.guess = function(answer) { if (this.getQuestionIndex().isCorrectAnswer(answer)) { this.score++; } this.questionIndex++; } Quiz.prototype.isEnded = function() { return this.questionIndex === this.questions.length; } // create quiz var quiz = new Quiz(questions); // display quiz populate();
Что я уже пробовал:
Я ничего не пробовал, так как буквально не знаю, что делать. Заранее спасибо
W∴ Balboos, GHB
1) Почему вы не спросили источник о переполнении стека?
2) по крайней мере, возвращайтесь после того, как вы что - то попробуете-это не служба написания кода. Попробуй придумать, что делать.
3) если (1) и (2) не работают, тогда, возможно, просто найдите что-то другое, чтобы занять вас.