首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何隐藏未加载的图片(<img>标签)?

隐藏未加载的图片可以通过多种方法实现,以下是几种常见的方法:

方法一:使用CSS

你可以使用CSS来隐藏未加载的图片。一个常见的方法是使用伪类:empty:not(:empty)

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hide Unloaded Images</title>
    <style>
        img {
            width: 200px;
            height: 200px;
            background-color: #f0f0f0; /* 设置一个占位背景色 */
        }
        img:not([src]):not([srcset]) {
            display: none; /* 隐藏没有src属性的图片 */
        }
    </style>
</head>
<body>
    <img data-src="image.jpg" alt="Example Image">
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const images = document.querySelectorAll('img[data-src]');
            images.forEach(img => {
                img.src = img.dataset.src;
            });
        });
    </script>
</body>
</html>

方法二:使用JavaScript

你可以使用JavaScript来动态设置图片的src属性,并在图片加载完成前隐藏图片。

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hide Unloaded Images</title>
    <style>
        img {
            width: 200px;
            height: 200px;
            background-color: #f0f0f0; /* 设置一个占位背景色 */
            visibility: hidden; /* 隐藏图片 */
        }
        img.loaded {
            visibility: visible; /* 加载完成后显示图片 */
        }
    </style>
</head>
<body>
    <img data-src="image.jpg" alt="Example Image">
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const images = document.querySelectorAll('img[data-src]');
            images.forEach(img => {
                img.src = img.dataset.src;
                img.onload = () => {
                    img.classList.add('loaded');
                };
            });
        });
    </script>
</body>
</html>

方法三:使用占位符

你可以使用一个占位符来代替未加载的图片,当图片加载完成后替换掉占位符。

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hide Unloaded Images</title>
    <style>
        .image-container {
            width: 200px;
            height: 200px;
            background-color: #f0f0f0; /* 设置一个占位背景色 */
            position: relative;
        }
        .placeholder {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #f0f0f0;
        }
        img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            opacity: 0;
            transition: opacity 0.3s;
        }
        img.loaded {
            opacity: 1;
        }
    </style>
</head>
<body>
    <div class="image-container">
        <div class="placeholder"></div>
        <img data-src="image.jpg" alt="Example Image">
    </div>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const images = document.querySelectorAll('img[data-src]');
            images.forEach(img => {
                img.src = img.dataset.src;
                img.onload = () => {
                    img.classList.add('loaded');
                };
            });
        });
    </script>
</body>
</html>

应用场景

  1. 页面加载优化:在图片加载完成前隐藏图片,可以减少页面加载时的视觉混乱,提升用户体验。
  2. 懒加载:在用户滚动到图片位置前不加载图片,可以减少初始加载时间,节省带宽。
  3. 占位符设计:使用占位符可以提供更好的视觉反馈,让用户知道这里会有图片。

参考链接

通过以上方法,你可以有效地隐藏未加载的图片,提升页面加载体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • jquery scroll 滚动加载列表 获取腾讯云图片像素信息

    bootstarp列表加载图片时需要同时获取图片的像素(宽and高),对于腾讯云这类远程存储获取图片来说,虽然也可以通过java后台调用腾讯云接口获取图片像素,但是在列表加载大量图片并且没有分页的情况下,如果通过后台逐个获取图片像素信息返回给前台页面渲染的话,会导致前台页面迟迟加载不出来,且有浏览器内存耗尽卡死的风险,并且腾讯云获取图片像素信息的接口还有频限100的限制,这就更导致了通过后台获取图片像素方案的不适用,那么如果通过页面jquery获取图片像素的时候当图片量很大的时候也是会出现卡顿,加载慢的情况,这个时候就考虑的热区内图片展示像素,非热区内图片待鼠标下滑啊时再加载像素信息方案的产生。

    01

    小程序富文本解析利器mp-html

    微慕小程序是资讯、媒体类小程序,因为对富文本内容和媒体内容的显示有较高的需求。对于富文本解析,微慕小程序以前采用的开源的wxParse组件,不过wxParse组件存在很多的问题且已经停止维护支持,随着微慕小程序功能不断的增加和优化,wxParse组件已经无法适应,同时对wxParse二次开发优化的难度比较大,基于此微慕团队考虑寻找更合适的解析组件,经过朋友的推荐和我们的考察,最终选择开源组件:mp-html(https://jin-yufeng.gitee.io/mp-html),这个组件堪称小程序富文本解析利器。微慕团队对mp-html组件二次开发后可以与微慕小程序完美兼容,微慕小程序专业版v3.8.0加入了该组件。mp-html组件给富文本的内容提供了不少出色的功能。

    03

    真香警告!多线程分类表情包爬取,一起斗图叭(*^▽^*)~~~

    有一个网站,叫做“斗图啦”,网址是:https://www.doutula.com/。这里面包含了许许多多的有意思的斗图图片,还蛮好玩的。有时候为了斗图要跑到这个上面来找表情,实在有点费劲。于是就产生了一个邪恶的想法,可以写个爬虫,把所有的表情都给爬下来。这个网站对于爬虫来讲算是比较友好了,他不会限制你的headers,不会限制你的访问频率(当然,作为一个有素质的爬虫工程师,爬完赶紧撤,不要把人家服务器搞垮了),不会限制你的IP地址,因此技术难度不算太高。但是有一个问题,因为这里要爬的是图片,而不是文本信息,所以采用传统的爬虫是可以完成我们的需求,但是因为是下载图片所以速度比较慢,可能要爬一两个小时都说不准。因此这里我们准备采用多线程爬虫,一下可以把爬虫的效率提高好几倍。

    03
    领券