Rumah  >  Soal Jawab  >  teks badan

Berikan untukSetiap pada setiap imej melalui 'img'

<p>Saya cuba menggunakan forEach dalam JS di bawah teg img dalam HTML. </p><p>Ini ialah pembolehubah bobbingPhotos: </p> <pre class="brush:php;toolbar:false;">bobbingPhotos.forEach(function(photo) { var randomDelay = Math.random() * 2; // Kelewatan rawak antara 0 dan 2 saat photo.style.animationDelay = randomDelay + 's'; });</pre> <p>Masalah ini boleh diselesaikan dengan memberikan setiap imej nama kelas berkod keras "bobbing-photo", tetapi saya tidak boleh melakukan ini kerana imej saya dihasilkan daripada input teks. </p> <pre class="brush:php;toolbar:false;">function generateImages() { var userInput = document.getElementById('userInput').value; var imageOutput = document.getElementById('imageOutput'); imageOutput.innerHTML = ''; untuk (var i = 0; i < userInput.length; i++) { aksara var = userInput[i].toUpperCase(); elemen var; jika (watak === "n") { elemen = document.createElement('br'); } else if (watak === ' ') { elemen = document.createElement('img'); element.src = 'FONT/SPACE.png'; } lain { imej var = document.createElement('img'); image.src = 'FONT/' + aksara + '.png'; unsur = imej; image.classList.add("bobbing-photo"); }</pre> <p>Walaupun menggunakan image.classList.add("bobbing-photo"), tiada cara untuk membuat setiap imej terapung ke atas dan ke bawah pada titik masa yang berbeza. </p><p>Adakah terdapat cara untuk menyelesaikan masalah ini? </p><p><br /></p>
P粉998100648P粉998100648449 hari yang lalu428

membalas semua(1)saya akan balas

  • P粉512526720

    P粉5125267202023-07-29 12:11:27

    Memandangkan anda menambah tag imej secara dinamik, fungsi animasi harus dipanggil semula selepas menambah tag imej.

    generateImages();
        // todo here get elements by classname
        var bobbingPhotos = ...
        // call animation function again
        bobbingPhotos.forEach(function(photo) {
          var randomDelay = Math.random() * 2; // Random delay between 0 and 2 seconds
          photo.style.animationDelay = randomDelay + 's';
        });

    balas
    0
  • Batalbalas