html - 如何不在 img 和标签中复制相同的 base64 图像(例如在灯箱中显示)
问题描述
我正在构建一个独立的 HTML 页面,并且在我的文档中使用 base64 图像。我希望能够单击这些图片以在灯箱中放大它们。我不明白如何避免在<a>
标签中复制 base64 图像来实现这一点。我阅读了 CSS 解决方案,但我不明白如何将 base64 传递给标签和<a>
标签。
<a href="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==">
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
</a>
解决方案
像这样的东西?
document.getElementById("container").addEventListener("click", function(e) {
var tgt = e.target;
if (tgt.tagName === "IMG") {
document.getElementById("zoom").innerHTML = this.outerHTML;
document.getElementById("zoom").style.display = "block"
}
})
img {
cursor: pointer
}
#zoom {
position: absolute;
top: 100px;
left: 100px;
display: none;
}
#zoom img {
height: 100px;
width: 100px
}
<div id="container">
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
</div>
<div id="zoom"></div>
如果你需要 A 标签试试这个
document.getElementById("container").addEventListener("click", function(e) {
var tgt = e.target;
if (tgt.tagName === "IMG") {
tgt.parentElement.setAttribute("href",tgt.src);
}
})
<div id="container">
<a href="#">
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
</a>
</div>
推荐阅读
- excel - 在 VBA 中突出显示超出限制
- angular - Angular 9 - mat-select 的问题,它没有选择选项列表中的当前值
- c# - 我可以在 UWP 应用程序中导入和显示 3D 文件(例如从 Blender 导出)吗?
- javascript - 如何从javascript中的xml响应正文中读取字符串
- angular - 显示模态如果条件在Angular中为真?
- android - 为什么 Android 共享首选项的文件名需要唯一?
- c# - 自定义构造函数输入到 AutoFixture 中的抽象类
- c++ - 处理数组时指针中的分段错误
- autodesk-forge - 与剖面交互
- azure - 将 Azure Notebook 连接到 Azure VM