Attribuer forEach à chaque image via 'img'
P粉998100648
2023-07-28 23:13:59
<p>J'essaie d'utiliser forEach en JS sous la balise img en HTML. </p><p>Il s'agit de la variable bobbingPhotos : </p>
<pre class="brush:php;toolbar:false;">bobbingPhotos.forEach(function(photo) {
var randomDelay = Math.random() * 2; // Délai aléatoire entre 0 et 2 secondes
photo.style.animationDelay = randomDelay + 's';
});</pré>
<p>Ce problème pourrait être résolu en attribuant à chaque image un nom de classe codé en dur "bobbing-photo", mais je ne peux pas le faire car mes images sont générées à partir de la saisie de texte. </p>
<pre class="brush:php;toolbar:false;">function generateImages() {
var userInput = document.getElementById('userInput').value;
var imageOutput = document.getElementById('imageOutput');
imageOutput.innerHTML = '';
pour (var i = 0; i < userInput.length; i++) {
caractère var = userInput[i].toUpperCase();
élément var ;
si (caractère === "n") {
element = document.createElement('br');
}
sinon si (caractère === ' ') {
element = document.createElement('img');
element.src = 'FONT/ESPACE.png';
}
autre {
var image = document.createElement('img');
image.src = 'FONT/' + caractère + '.png';
élément = image ;
image.classList.add("bobbing-photo");
}</pré>
<p>Même en utilisant image.classList.add("bobbing-photo"), il n'y a aucun moyen de faire flotter chaque image de haut en bas à différents moments dans le temps. </p><p> Existe-t-il un moyen de résoudre ce problème ? </p><p><br /></p>
Puisque vous avez ajouté la balise d'image de manière dynamique, la fonction d'animation doit être à nouveau appelée après l'ajout de la balise d'image.