千家信息网

css怎么使用高斯模糊的效果逐步加载图片

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"css怎么使用高斯模糊的效果逐步加载图片",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"css怎么使用高斯模糊的效果逐步加载图片"吧!用过
千家信息网最后更新 2026年10月31日css怎么使用高斯模糊的效果逐步加载图片

本篇内容主要讲解"css怎么使用高斯模糊的效果逐步加载图片",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"css怎么使用高斯模糊的效果逐步加载图片"吧!

用过 Medium 的用户不会不记得它的图片加载方式——纯色-高斯模糊-加载完成并显示。

这是一种很优雅的图片预加载的方式(因为 Medium 的图片质量都很高,如果全部一下加载的话,需要的时间难以想象,所以,这是一种很棒的做法)。从***次打开 Medium 这个网站开始,我就被这种技术给吸引住了——好吧,直到今天才去研究它。

在 Medium 网站,打开任何一篇文章,然后,我们来 inspect 一下:

可以看到,Medium 为每一张图片都设置了这么长的一段 HTML。这样做的目的就是为了让这个图片的逐步加载过程能够平滑如一,同时还能在一定程度上提升用户体验。就算图片没有加载出来,显示给用户的是一个高斯模糊的图片,其实也不失美感。

那么,这个图片的逐步加载过程具体是什么样的呢?

  1. 渲染一个 div 容器,这个容器就是用来显示最终展示给用户的图片的。通过对容器设置一个百分比的 padding-bottom 来让其比例和大小与最终图片的比例和大小相同,这样,就能避免图片加载出来的时候导致的页面的重排;

  2. 使用 img 标签来加载一张原图质量的 10% ~ 20% 左右的图片,这张图片的质量很低,而且很小,所以可以马上加载出来;

  3. 一旦小图加载完成,就开始使用 canvas 来进行绘制,添加模糊效果,同时,开始请求最终要加载的大图;

  4. 当最终的大图也加载完成之后,显示大图,隐藏掉 canvas。

以上就是 Medium 的做法。

我们可以自己来实现这个效果,实现过程如下:

  1. 渲染一个容器,保持与原图的比例和尺寸相同,填充一个较浅的背景色;

  2. 先加载小图,同时使用模糊效果;

  3. 小图加载完成,开始请求大图;

  4. 大图加载完成,显示大图,隐藏小图。

所以,综合来看,其实并不复杂。

首先,我们可以把大图和小图的 URL 和尺寸都存起来,通过标签的 data 属性去动态获取。所以,我们的 HTML 可以像下面这样写:

其中各个参数代表的含义是:

  • data-real-width: 大图的宽度

  • data-real-height: 大图的高度

  • data-src: 小图的 URL

  • src: 大图的 URL

同时,我们需要定义一些 CSS 的 class 来对大图和小图进行处理:

.blur-img-container {     position: relative;     background: #eeeeee;     background-size: cover;     overflow: hidden; }  .blur-img-container img {     position: absolute;     top: 0;     left: 0;     width: 100%;     height: 100%;     opacity: 0;     transition: all 0.4s ease-in-out; }  .blur-img-container .thumb-loaded {     opacity: 1;     filter: blur(10px);     transform: scale(1); }  .blur-img-container .large-loaded {     opacity: 1; }  .blur-img-container .thumb-hidden {     opacity: 0; }

然后,我们的重点在于 JavaScript 的处理。

  • 需要动态的设置每个图片的容器的 padding-bottom 以防止页面发生重排;

  • 通过 image 的 onload 事件来控制其样式和进度

***点,动态设置我们的容器的 padding-bottom。可以通过计算宽高比然后换算成百分比:

elem.style.paddingBottom = `${(realHeight / realWidth) * 100}%`;

第二点,使用图像的 onload 事件来控制加载的进度:

let thumb = new Image(); thumb.src = thumbSrc; thumb.onload = () => {     // 小图加载完成,显示小图,设置样式     setStyle(thumb, 'thumb-loaded'); }; elem.appendChild(thumb);  let realImg = new Image(); realImg.src = lgSrc; realImg.onload = () => {     // 大图加载完成,显示大图,隐藏小图     setStyle(realImg, 'large-loaded');     setStyle(thumb, 'thumb-hidden'); };  // 将大图添加到页面中 elem.appendChild(realImg);

其实,只要把上面两点主要的功能做好了,我们的这个效果基本上就实现了。

可以通过我的 GitHub Repo 来查看完整的源代码和例子 blur-image。

到此,相信大家对"css怎么使用高斯模糊的效果逐步加载图片"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

图片 大图 效果 容器 高斯 同时 用户 动态 就是 比例 网站 质量 过程 页面 相同 事件 做法 内容 原图 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 新华互联网科技 互联网科技工作委员会毛军 互联网科技战争 远信互联网科技 百单互联网科技有限公司 上海喔噻互联网科技 丰台科技园 互联网 长亮科技互联网金融 中盈科技互联网信息有限公司 互联网科技项目计划书材料类 威龙国际互联网科技公司 中和天地互联网科技有限公司 区块链结合互联网科技 科技互联网的核心竞争力 上海科技产业互联网平台 雨阳互联网卡科技有限公司 云鲸互联网络科技有限公司 互联网科技手抄报图片 安徽九吞吴互联网科技有限公司 工业互联网科技新基建 互联网科技有限公司图片 互联网女皇 腾讯科技 互联网科技公司做什么 银川新华互联网科技学校地址 武汉健翔互联网络科技有限公司 用友工业互联网科技发展 保险科技服务互联网营销体系 众联互联网络科技 上海互联网科技园景观
0