gpt4 book ai didi

javascript - 仅在加载图像后将其附加到 DOM

转载 作者:行者123 更新时间:2023-11-28 01:15:26 25 4
gpt4 key购买 nike

目前,我有一个 img 元素,它使用 top 样式来显示 Sprite ,并希望将其动态更改为另一个非 Sprite 图像。我目前正在执行以下操作:

HTML:

<span id="container">
<img src="sprite.png" style="top:-40px;">
</span>

Javascript:

var newImgEl = document.createElement('img');
newImgEl.setAttribute('src', 'other-image.png'); // (1)
newImgEl.style.top = "0px";

var containerEl = document.getElementById('container');
containerEl.innerHTML = '';
containerEl.appendChild(newImgEl); // (2)

我找不到的是:图像会在(1)还是(2)中加载?我无法测试慢速连接的效果,但我怀疑如果它在(2)中加载,样式将在图像加载之前改变,短暂地显示 Sprite 的非预期部分。如果是这样,我如何触发加载并在完成后将元素附加到 DOM?

拜托,没有 jQuery 解决方案。

最佳答案

由于在实际附加到 DOM 之前只需更改 src 属性即可加载图像,因此我完成了以下操作,不需要超时:

var newImgEl = document.createElement('img');
newImgEl.addEventListener('load', function() {
newImgEl.style.top = "0px";
containerEl.innerHTML = '';
containerEl.appendChild(newImgEl);
});
newImgEl.setAttribute('src', src); // Loads the image.

我还没有检查它是否可以跨浏览器工作。

关于javascript - 仅在加载图像后将其附加到 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23895886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com