Div 背景图像未显示然后显示图像替代文本

Posted

技术标签:

【中文标题】Div 背景图像未显示然后显示图像替代文本【英文标题】:Div background image not showing then display image alt text 【发布时间】:2017-03-22 13:57:55 【问题描述】:

这是我的 html 代码,其中我有一个 div,并且在 div 之外有一个图像

<div runat="server" id="ProductThumbnail" style="width:140px;height:140px;position:relative;background-position:center;background-repeat:no-repeat;">                    
<asp:Image  ID="ProductThumbnail1" runat="server" Style="max-height: 50px;position:absolute;right:0px;top:0px;" />
</div>
<asp:Image  ID="Imagealt" runat="server" />

我正在做的是将服务器端的 div 背景图像设置为代码

ProductThumbnail.Style.Add("BACKGROUND-IMAGE", "url(" + Item.ThumbnailUrl.Replace("~", "..") + ")");

我想要的是,如果 div 背景图像 url 没有显示任何图像,那么 Imagealt 将显示我从后端设置的 alt 文本,如果 div 背景图像 url 在这种情况下显示图像 Imagealt隐藏起来

我希望所有这些都在服务器端代码和 javascript 上完成

请查看下图

**在左侧 div 图像不存在,因此图像替代文本显示是正确的,但在右侧图像显示仍然向下替代文本出现,这是错误的

如果显示 div 背景图像,我不想显示替代文本**

1-如果图片没有替代文字

2-如果图片未显示,则显示替代文字

例如:

如果我的div背景图片url路径设置为这个url

http://meenaprints.in/Admin/images/productimg/thumbnail/436x636_4736.jpg

不应出现替代文本,因为此 URL 正在检索图像

但是

如果div背景图片URL路径设置为URL

http://meenaprints.in/Admin/images/productimg/thumbnail/436x636_473123.jpg

不是检索图像而不是 ALT 文本应该得到显示

【问题讨论】:

图像没有显示...你能检查一下 div 背景看它指向的位置吗(我认为传递了错误的路径) 编写的代码是正确的,我只需要找到如果没有 dic 背景图像,它会显示 alt 文本的代码 所以代码是正确的......你没有任何问题......好:) 我需要为 div 何时显示图像图像替代文本不显示进行编码,如果 div 图像背景图像 url 错误,但明显的图像不会显示,在这种情况下,我需要图像替代文本获取展示 @Hackerman 请查看更新后的问题。希望你能得到我需要的东西 【参考方案1】:

为什么不检查产品图片是否存在并显示/隐藏适当的图片。

if (File.Exists(Server.MapPath("product.jpg")))

    ProductThumbnail1.Visible = true;
    Imagealt.Visible = false;

else

    ProductThumbnail1.Visible = false;
    Imagealt.Visible = true;

更新

那么也许你正在寻找这样的东西?

<div id="imageContainer">
    <div id="altText">Alt text of image</div>
    <div id="imagePlaceHolder" style="display: none;">
        <img src="/test.png" onload="imageIsLoaded()" />
    </div>
</div>

<script type="text/javascript">
    function imageIsLoaded() 
        document.getElementById("altText").style.display = "none";
        //show the image
        document.getElementById("imagePlaceHolder").style.display = "block";
        //or set the image as background
        document.getElementById("imageContainer").style.background = "center center  no-repeat url('test.png')";
    
</script>

只有当图片被加载时,imageIsLoaded 才会被调用,从而显示图片并隐藏替代文本。

【讨论】:

但是如果 GOOgle URL 出现在这种情况下,我们如何搜索这个 url 有图像并且该图像在 div 背景中加载或未加载? 请查看更新后的问题,我希望你能得到我想要的东西

以上是关于Div 背景图像未显示然后显示图像替代文本的主要内容,如果未能解决你的问题,请参考以下文章

叠加在图像上时,使文本显示为白色,具有半透明的黑色背景

背景图像未在样式化组件中显示

自定义字体未在用作背景图像的 SVG 模式中显示

图像未显示在反应卡组件中

Firebase 存储图像未显示在 nextjs 应用程序中

使用 REACT 在 div 中显示背景图像的问题