将forEach分配给每个图像通过'img'
P粉998100648
P粉998100648 2023-07-28 23:13:59
[JavaScript讨论组]

我正在尝试在HTML的img标签下使用JS中的forEach。

这是变量bobbingPhotos:

bobbingPhotos.forEach(function(photo) {
  var randomDelay = Math.random() * 2; // Random delay between 0 and 2 seconds
  photo.style.animationDelay = randomDelay + 's';
});

这个问题可以通过给每个图像分配一个硬编码的类名"bobbing-photo"来解决,但是我不能这样做,因为我的图像是通过文本输入生成的。

function generateImages() {
  var userInput = document.getElementById('userInput').value;
  var imageOutput = document.getElementById('imageOutput');
  imageOutput.innerHTML = '';

  for (var i = 0; i < userInput.length; i++) {
    var character = userInput[i].toUpperCase();
    var element;

    if (character === "n") {
  element = document.createElement('br');
}
else if (character === ' ') {
  element = document.createElement('img');
  element.src = 'FONT/SPACE.png';
}
else {
  var image = document.createElement('img');
  image.src = 'FONT/' + character + '.png';
  element = image;
  image.classList.add("bobbing-photo");
}

即使使用image.classList.add("bobbing-photo"),也无法使每个图像在不同的时间点上下浮动。

有没有解决这个问题的方法?


P粉998100648
P粉998100648

全部回复(1)
P粉512526720

由于您动态添加了图像标签,因此在添加图像标签后应再次调用动画函数。

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';
    });
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号