У меня такой код:
<script type="text/javascript">
var image1=new Image()
image1.src="images/natandadam.jpg"
var image2=new Image()
image2.src="images/gardaa.jpg"
var image3=new Image()
image3.src="images/marmaris.jpg"
var image4=new Image()
image4.src="images/gardab.jpg"
var image5=new Image()
image5.src="images/engagement.jpg"
var image6=new Image()
image6.src="images/gardac.jpg"
var image7=new Image()
image7.src="images/natandadamlake.jpg"
//-->
</script>
<script>
<!--
//variable that will increment through the images
var step=1
function slideit(){
//if browser does not support the image object, exit.
if (!document.images) {
return;
}
document.images.slide.src=eval("image"+step+".src");
if (step<7) {
step++;
} else {
step=1;
}
//call function "slideit()" every 2.5 seconds
setTimeout("slideit()",2500);
}
slideit();
//-->
</script>
... и это вызывает это:
<img style="border:6px double #545565;" src="gardaa.jpg" name="slide" width=600 height=400>
Я хочу, чтобы он продолжал пропускать изображения, но останавливался на последнем. Это повторялось, когда у него было только три изображения; Теперь я добавил больше, его остановили.
Что мне изменить, чтобы они повторялись?
1 ответ
Вы можете немного упростить свой скрипт:
<script type="text/javascript">
var images ="natandadam.jpg,gardaa.jpg,marmaris.jpg,gardab.jpg,engagement.jpg,gardac.jpg,natandadamlake.jpg".split(",")
var step=1
function slideit(){
document.images.slide.src="images/" + images[step]
step++
if(step>images.length) {
step = 1
}
setTimeout(function(){slideit()},2500);
}
slideit();
</script>
Несколько советов:
1 - вам не нужно использовать <!--
и //-->
, чтобы скрыть свой скрипт. Единственный браузер, который требовал этого, умер в 90-х.
2 - не используйте eval()
, это зло.
3 - так как изображения теперь находятся в массиве, вы можете проверить добавление или удаление и сколько угодно без использования if (step<7)
. Код просто проверяет длину массива.
4. Используйте так называемую анонимную функцию в setTimeout вместо цитирования кода. Код цитирования использует eval(
) внутри.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.