您不能“将图像附加到另一个图像”。将另一个元素放入图像中是无效的 HTML——因为<img>
标签不能有子标签,也不能有结束标签。
如果要将一个图像“放在”另一个图像的“顶部”,请将原始图像替换为div
相同大小的图像,然后将两个图像都放在其中。然后,您可以将第二张图像绝对放置在第一张图像之上。这是对您的函数的修改,将完成此操作:
function overlayImage(element, src, alt) {
var
div = document.createElement('div'),
img = new Image();
element.parentElement.insertBefore(div, element); // add the div to the parent
div.style.display = 'inline-block'; // make it behave like an image
div.style.position = 'relative'; // for absolute position of children
div.appendChild(element);
img.src = src;
img.alt = alt;
img.style.position = 'absolute';
img.style.right = 0;
img.style.top = 0;
div.appendChild(img);
}
给你!
<img src="(base)">
这样做是用以下结构替换您的独奏标签。
<div style="display:inline-block; position:relative;">
<img src="(base)">
<img src="(overlay)" style="position:absolute; top:0; right:0;">
</div>
当然,如果您可以控制页面,最好创建一个可以应用的 CSS 样式,而不是手动设置每个元素的样式。如果您可以控制页面并且想要对许多图像执行此操作,您还可以提前创建上述结构,而不必在使用 javascript 加载页面后对其进行调整。