【SSD系列】图片作为背景的闪白问题,6种基础方案, 不会不知道吧

简介: 关于【SSD系列】:前端一些有意思的内容,旨在3-10分钟里, 500-1500字,有所获,又不为所累。某天,发现有背景图片的弹出框,会出现闪白现象,这,兄弟们,你们说能忍么?答案:不能!

4.JPG


前言


关于【SSD系列】:


前端一些有意思的内容,旨在3-10分钟里, 500-1500字,有所获,又不为所累。

某天,发现有背景图片的弹出框,会出现闪白现象,这,兄弟们,你们说能忍么?

答案:不能!


思路


思路嘛,无非三种


  1. 弹框时或者显示时,背景图片已经ready
  2. 背景色或者小图,先顶着,大背景图ready后切换
  3. 尽可能的快


这里暂且不考虑缓存,因为你无论如何逃不过第一次加载。


方案


可以到 背景图片闪现空白解决方案 看到各种方案演示。


为了提升大家兴趣,先看个png, jpg渐进和png交错的加载效果动图


1.JPG


方便移动端观看,列一个演示清单:



方案1 base64


如果背景图片相对小,或者你执意要这嘛做,图片转为bas464,存到css或者html里面。


演示: 背景图片闪现空白方案-base背景图片


不足: base64增加带宽成本,内容会比原本大至少1/3。 至于为什么可参见 前端Base64编码知识,一文打尽,探索起源,追求真相。


方案2 prefetch


<link rel="prefetch" ></link>
复制代码
<link rel="prefetch" href="./img/bg-huoluo.jpg"/>   
    .bg {
        background-image:url("./img/bg-huoluo.jpg");
        background-size: contain;
    }
复制代码


prefetch是对浏览器的暗示,暗示将来可能需要某些资源,但由浏览器决定是否加载以及什么时候加载这些资源。 优先级低。


pre家族:preload, prefetch, dns-prefetch, preconnect, prerender。


有人可能会问,干嘛不用preload。 呵呵, 你说呢?


演示: 背景图片闪现空白方案-preferch


方案3 创建隐藏Img节点


<img src="./img/bg-huoluo.jpg" alt="" title="" style="display: none"/>
    .bg {
        background-color: #2D2C27;
        background-image: url(./img/bg-huoluo.jpg);
        background-size: contain;
    }
复制代码

这方案好理解,图片已经请求下载啦。 其实不能解决首屏背景图片的问题。

演示:背景图片闪现空白方案-创建隐藏Img节点


方案4 等待图片加载完毕再显示弹框


let dg = null;
        function createDialog() {
            onImageLoad('./img/bg-huoluo.jpg').then(src => {
                if (!dg) {
                    dg = document.createElement('div');
                    dg.className = "bg";
                    dg.style.backgroundImage = `url(${src})`;
                    dg.id = "dialog";
                    dg.innerHTML = `
                <div class="content">我爱赫萝!!!!</div>
            `
                    document.body.appendChild(dg);
                }
            })
        }
        function onImageLoad(src) {
            return new Promise((resolve, reject) => {
                let img = new Image();
                img.src = src;
                img.onload = function () {
                    resolve(src)
                }
                img.onerror = reject
            })
        }
复制代码


当然这是有明显问题的,你不能因为一个背景图片而让内容无法正常展现。

当然你可以有修正方案。


演示: 背景图片闪现空白方案-等待图片加载完毕再显示弹框


方案5 同时设置背景颜色和图片


.bg {
            background-color:#433F34;
            background-size: contain;
        }
        .bg-new{
            background-image: url(./img/bg-huoluo.jpg)
        }
复制代码


这样,背景图片加载上的时候,不会有明显的闪白效果。 当然要是背景图片,五颜六色,估计有点为难客官啦。


演示: 背景图片闪现空白方案-同时设置背景颜色和图片


方案6 jpg使用渐进模式,png使用交错模式


这两种模式共同的作用就是,你不必完整的下载完毕图片,就可以看到图片的内容了。

打个比方, 1M的图片,你可能只需下载不到100Kb,就已经能相对清晰的看到图片了。

演示: png正常,png交错,jpg渐进


方案7 小图过度方案


显示loading图片或者小图,完毕后再换大图。 这种方案常用语封面,商品图标等等场景,背景图也可以借鉴其思路。


其他可参考方案


  • webp格式,减少图片大小
  • css spirte, 减少http开销,同时让其早被加载
    css spirte + prefech 可以秀一波
  • jpg格式图片压缩
  • 图片cdn
  • 多域名
  • 背景图片切割,能repeat就repeat


小结


是不是很简单,一切都看起来没那么难,这样,你才容易入坑啊。


写在最后


写作不易,你的一赞一评就是我前行的最大动力。

技术交流群请到这里来

相关文章
|
2月前
|
机器学习/深度学习 编解码 算法
了解与对比主流背景去除工具
本文对比了几款主流的背景去除工具,包括Remove.bg、Removal.ai、RMBG 2.0、Imagga和Wondershare Pixcut,重点介绍了RMBG 2.0这款开源工具的性能、优势及挑战,适用于不同需求的用户选择。
|
7月前
|
存储 网络协议 文件存储
技术心得:图片存储方案
技术心得:图片存储方案
87 0
|
7月前
|
Java 机器人 Linux
01. 【Android教程】系统背景及结构概述
01. 【Android教程】系统背景及结构概述
57 0
|
8月前
|
机器学习/深度学习 人工智能 算法
免费背景音人声分离解决方案MVSEP-MDX23,足以和Spleeter分庭抗礼
在音视频领域,把已经发布的混音歌曲或者音频文件逆向分离一直是世界性的课题。音波混合的物理特性导致在没有原始工程文件的情况下,将其还原和分离是一件很有难度的事情。 言及背景音人声分离技术,就不能不提Spleeter,它是一种用于音频源分离(音乐分离)的开源深度学习算法,由Deezer研究团队开发。使用的是一个性能取向的音源分离算法,并且为用户提供了已经预训练好的模型,能够开箱即用,这也是Spleeter泛用性高的原因之一,关于Spleeter,请移步:[人工智能AI库Spleeter免费人声和背景音乐分离实践(Python3.10)](https://v3u.cn/a_id_305),这里
免费背景音人声分离解决方案MVSEP-MDX23,足以和Spleeter分庭抗礼
|
8月前
|
Java 数据安全/隐私保护
SpringBoot【集成Thumbnailator】Google开源图片工具缩放+区域裁剪+水印+旋转+保持比例等(保姆级教程含源代码)
SpringBoot【集成Thumbnailator】Google开源图片工具缩放+区域裁剪+水印+旋转+保持比例等(保姆级教程含源代码)
353 0
|
存储 Web App开发 编解码
智能存储HEIC&AVIF图片硬件压缩方案详解
图片格式的进化一图抵千文,因此很多的应用都会用图片来表现丰富的内容。提起图片格式,大家耳熟能详的有JPEG,PNG,WEBP等等,这也是当前互联网上主流的图片格式,然而在过去的十年,随着技术的发展,图片的压缩技术又取得了长足的进步,新的图片格式已经涌现,使用这些传统的图片格式已经不再是最优的选择。在过去的10年移动互联网快速发展,使网络速度越来越快,但是手机的摄像头分辨率也越来越高,用户手机的UG
1670 0
智能存储HEIC&AVIF图片硬件压缩方案详解
|
固态存储 算法 芯片
SSD性能优化之4K对齐
【引语】 你是否听人说 SSD 买来一定要先对齐,不然平时用起来会很顿。究竟是真有这种说法还是人云亦云呢?请往下看,相信聪明的你会自有判断。
|
存储 固态存储 算法
SSD写放大的优化策略要有统一标准了吗?
写放大WAF是NAND-based SSD寿命消耗的关键参数,WAF越大,寿命消耗越快,越接近1,则寿命消耗越慢,也是最理想的情况。 所以,为了让SSD的WAF写放大系数接近1,这些年,各种方案也被提出来。
【图片操作】混合图片
混合图片的方式有很多种,我们先来看看如何通过混合图片的通道来实现图片混合。
163 0
|
安全
网站色彩设计与搭配技术(上)
网页访客第一眼看到的网站,不是优美的版式或者美丽的图片,而是网页的色彩。
660 0
网站色彩设计与搭配技术(上)

热门文章

最新文章