Afficher une image à partir d'un tableau d'images - Javascript
J'ai une grande image de ce qui est indiqué sur ma page d'accueil, et lorsque l'utilisateur clique sur le "next_img" bouton de la grande image sur la page d'accueil doit passer à l'image suivante dans le tableau.
Toutefois, la flèche suivant lors d'un clic ne fait rien, et l'image principale sur la page d'accueil ne change pas.
J'ai besoin de le faire en javascript.
Dans le code HTML:
<!--Main Content of the page -->
<div id="splash">
<img src="images/img/Splash_image1.jpg" alt="" id="mainImg">
</div>
<div id="imglist">
<a href="javascript:nextImage('mainImg')"><img src="images/next_img.png" alt=""></a>
Et puis dans le fichier javascript:
var imgArray = new Array();
imgArray[0] = new Image();
imgArray[0].src = 'images/img/Splash_image1.jpg';
imgArray[1] = new Image();
imgArray[1].src = 'images/img/Splash_image2.jpg';
imgArray[2] = new Image();
imgArray[2].src = 'images/img/Splash_image3.jpg';
imgArray[3] = new Image();
imgArray[3].src = 'images/img/Splash_image4.jpg';
imgArray[4] = new Image();
imgArray[4].src = 'images/img/Splash_image5.jpg';
imgArray[5] = new Image();
imgArray[5].src = 'images/img/Splash_image6.jpg';
/*------------------------------------*/
function nextImage(element)
{
var img = document.getElementById(element);
for(var i = 0;i<imgArray.length;i++)
{
if(imgArray[i] == img)
{
if(i == imgArray.length)
{
var j = 0;
document.getElementById(element).src = imgArray[j].src;
break;
}
else
var j = i + 1;
document.getElementById(element).src = imgArray[j].src;
break;
}
}
}
Toute aide serait appréciée. Merci.
source d'informationauteur Navigatron
Vous devez vous connecter pour publier un commentaire.
Comme Diodeus dit, vous êtes en comparant un
Image
à unHTMLDomObject
. Au lieu de comparer leurs.src
attribut:Aussi, lors de la vérification de la dernière image, vous devez la comparer avec la
imgArray.length-1
parce que, par exemple, lors de la longueur du tableau est de 2, alors je vais prendre les valeurs 0 et 1, il ne sera pas atteindre la valeur 2, de sorte que vous devez la comparer avec la longueur-1 pas avec la longueur, ici est la ligne fixe:Ici est un peu le moyen le plus propre de la mise en œuvre de cette. Cela rend les modifications suivantes:
.src
attributs au lieu de DOM éléments pour le faire fonctionner correctement.Code:
Certains avantages de cette plus orienté objet et Séché approche:
P. S. Si vous ne savez pas ce que SEC, c'est "Don't Repeat Yourself" et signifie que vous ne devriez jamais avoir de nombreuses copies de semblable à la recherche de code. Quand vous avez cela, il devrait être réduit en quelque sorte à une boucle ou d'une fonction ou quelque chose qui supprime la nécessité pour les lots de de même à la recherche de copies de code. Le résultat final sera plus petits, généralement plus facile à maintenir et souvent plus réutilisable.
C'est un simple exemple et d'essayer de les combiner avec le vôtre à l'aide de quelques modifications. Je préfère vous définissez toutes les images dans un tableau afin de rendre votre code plus facile à lire et court:
Est là votre problème:
Vous êtes en comparant un élément de tableau à un objet DOM.