【问题标题】:Set HTML <img> element to Javascript image variable将 HTML <img> 元素设置为 Javascript 图像变量
【发布时间】:2017-09-02 19:19:54
【问题描述】:

我有一组图像变量,这些变量使用 javascript 预加载以制作图像序列动画。我遇到的问题是将 HTML 中的 img 元素设置为使用这些图像之一。似乎所有的属性都是字符串?

这是我在 javascript 中设置图像数组的方法:

for(var i = 0; i < 30; i ++){
    anim[i] = new Image();
    if(i < 10){
        anim[i].src = "images/anim/frame0" + i + ".png";
    }
    if(i >= 10){
        anim[i].src = "images/anim/frame" + i + ".png";
    }
}

我只是有一个 ^img 标签 = “动画”^ 在我想要更改的 html 中。

【问题讨论】:

  • 请提供一些代码示例
  • 怎么样?您可以在问题中发布您的代码吗?
  • 如果图像不是动态创建或从数据库中获取的,我可能会使用一些 CSS 关键帧来创建动画。请参阅:w3schools.com/css/css3_animations.asp 你不需要 javascript,它会更快更流畅
  • 我去看看
  • 我唯一担心的是每次更改动画帧时肯定都必须获取图像,而无需预加载?

标签: javascript html image set sequence


【解决方案1】:

您的代码看起来有效。

for(var i = 0; i < 30; i++){
    anim[i] = new Image();

    if(i < 10){
        anim[i].src = `images/anim/frame0${i}.png`;
    }

    if(i >= 10){
        anim[i].src = `images/anim/frame${i}.png`;
    }
}

现在您可以: document.body.appendChild(anim[0]);

我对此进行了测试,它对我有用。

如果您想即时更改 src,则必须选择附加元素并更新其 src,如下所示:document.querySelectorAll('img')[0].src = newSourceVariable;

【讨论】:

  • 太棒了,我需要删除旧的图像对象对吗?
  • 有什么办法可以只替换旧图像吗?它有一些我需要它保留的属性,以及使用原始对象的视差滚动功能。
  • 是的,要么删除旧图像(不推荐,因为你会有闪烁的动画)或通过选择已经附加的图像来更新src。使用 jQuery,您可以使用 $('img').eq(0).attr('src', newSource); 替换现有图像的 src
  • 使用纯 JS 你会这样做:document.querySelectorAll('img')[0].src = newSourceVariable; - 它将选择附加的图像并替换现有图像的src。您也可以循环执行此操作。
  • 所以经过几天的尝试,我已经使用 AppendChild 让它工作了。谢谢芽:)
猜你喜欢
  • 1970-01-01
  • 2022-10-05
  • 1970-01-01
  • 2011-12-14
  • 2016-04-30
  • 2016-08-03
  • 2013-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多