javascript - 如果图像以特定名称开头,则在图像顶部添加文本?| JS在类中包装图像
问题描述
我的服务器上有一组以某个名称开头的图像,因此:
“社区照片_John.jpg”
“communityphoto_Mary.jpg”等。
PHP 是否可以在找到以“communityphoto_”开头的图像时在图像顶部显示文本?如:“社区提交的照片,提交到我们的邮箱”
我找到了一些解决方案,但它们似乎都将文本烘焙到图像上(例如创建/保存带有嵌入文本的实际图像),但我只想在图像上显示文本,因为将来它可能更改,但我不想替换所有图像。
我提前道歉,我无法提供更多帮助,我仍处于我的 PHP 冒险的开始阶段,还没有走到现在。非常感谢您的关注和建议
解决方案
我认为在这种情况下,JavaScript 和一些 CSS 对你来说是更好的选择。根据图像的加载方式,最好的办法仍然是解析或过滤它,然后添加一个类(或一些 HTML)。
以下面的代码片段为例。它找到名称中包含的所有图像communityphoto_
,如果找到,则遍历它们,将它们<div>
与.community-image
类一起包装在 a 中。
然后使用一些 CSS,您可以使用::after
伪类在其上放置任何您想要的任意文本。如果需要,您还可以将此文本作为 a<span>
或其他内容添加到 JavaScript 中。另请注意,您不能只进行::after
拍摄img
,因为img
标签是无效元素(也称为自动关闭),在任何情况下都不会获取任何内容,所以这就是我将它包装在一个元素中并将其应用到那里的原因。
var communityImages = document.querySelectorAll('img[src*="communityphoto_"]');
if( communityImages.length > 0 ){
communityImages.forEach(function(image){
image.outerHTML = '<div class="community-image">'+ image.outerHTML +'</div>';
});
}
.community-image {
display: inline-block;
position: relative;
}
.community-image:after {
content: "Photo submitted by the community, submit yours to our email";
position: absolute;
top: 5px;
left: 5px;
background: rgba(0,0,0,.2);
font-size: 11px;
padding: 3px 6px;
}
<div>
<img src="https://xhynk.com/placeholder/300/100/communityphoto_1/"/>
<img src="https://xhynk.com/placeholder/300/100/communityphoto_2/"/>
<img src="https://xhynk.com/placeholder/300/100/something/" />
<img src="https://xhynk.com/placeholder/300/100/communityphoto_3/"/>
<img src="https://xhynk.com/placeholder/300/100/communityphoto_4/"/>
<img src="https://xhynk.com/placeholder/300/100/another/"/>
</div>
推荐阅读
- c# - 批量搜索文档弹性搜索
- python - 模型精度停留在 0.2505。我的代码有什么问题?
- javascript - 使用 javascript fetch 方法路由到 URL
- apache - Apache Shiro:通配符权限不起作用
- php - 无法获取 varbinary 字段
- html - 如何获得一个 DIV 框来填充网页而不是向左移动?
- excel - 有没有使用 VBA 宏代码对表格进行排序的快速方法?
- java - 按姓名搜索联系人列表
- python - 在熊猫中将 onehotencoder 值合并在一起
- javascript - 如何使用 equalTo 设置数据(未找到数据)javascript(解析平台)