Для школы я хочу создать веб-страницу, где я покажу 1 изображение, которое исчезает через 5 секунд и появляется кнопка. Вы должны нажать кнопку до появления следующего изображения, которое показывается в течение 5 секунд. Так что одна и та же история.
Поскольку я немного разбираюсь в кодировании, я нашел здесь какой-то фрагмент кода и попытался его использовать, но я могу только показать 1 изображение в течение 5 секунд после того, как я нажму кнопку.
Вот код
<input type="button" value="Show image for 5 seconds" onclick="show()"><br><br>
<div id="myDiv" style="display:none"><img id="1" src="img/logo.png"></div>
<div id="myDiv" style="display:none"><img id="2" src="img/test.jpg"></div><br>
<script type="text/javascript">
function show() {
document.getElementById("myDiv").style.display = "block";
setTimeout("hide()", 5000); // 5 seconds
}
function hide() {
document.getElementById("myDiv").style.display = "none";
}
</script>
Спасибо, и я надеюсь, вы, ребята, можете мне помочь! :)
Ну, для начала, у вас есть два div с одним и тем же идентификатором, что неверно. Предполагая, что у вас есть ваши изображения:
<button id="next" onclick="showNext();">Show next image</button><br />
<div class="image" style="display: none;"><img src="img/logo1.png" /></div>
<div class="image" style="display: none;"><img src="img/logo2.png" /></div>
<div class="image" style="display: none;"><img src="img/logo3.png" /></div>
<div class="image" style="display: none;"><img src="img/logo4.png" /></div>
<script type="text/javascript">
var divs = document.querySelectorAll('div.image'); //select all divs with class 'image'
var button = document.getElementById('next'); //button.
var currentImage = 0;
function showNext() {
button.style.display = 'inline';
divs[currentImage].style.display = 'block';
setTimeout(hide, 5000);
}
function hide() {
button.style.display = 'block';
divs[currentImage].style.display = 'none';
currentImage = (currentImage + 1) % divs.length;
}
</script>
Я не потрудился стилизовать ваши элементы с правилами CSS, которые были бы рекомендованы, но это будет работать по назначению.
Удалите двойные кавычки:
setTimeout(hide, 5000); // 5 seconds
setTimeout("hide()", 5000)
правильно.