偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一個(gè)有趣的圖片加載效果,你學(xué)會(huì)了嗎?

開發(fā) 前端
整體的加載效果就是圖片被橫向拉伸了一樣,隨著加載的過程圖片內(nèi)容逐漸顯示出來,這對(duì)于一些圖片背景中包含純色的情況下的效果更好,因?yàn)榧兩糠植还茉趺蠢煲彩羌兩挥衅渌伾诶斓倪^程中會(huì)交織在一起,隨著加載的過程逐漸看到廬山真面目,不得不說這是一個(gè)不錯(cuò)的交互的效果。

日常在業(yè)務(wù)中會(huì)經(jīng)常使用到圖片,而涉及到一些大圖的加載等待的時(shí)間較長,一般為了用戶更好的體驗(yàn),會(huì)使用一些不同的圖片加載效果,比如以下幾種情況:

  1. 骨架屏:在頁面上用占位框架代替圖片,展示出圖片的大致結(jié)構(gòu)和區(qū)域,給用戶一種“正在加載”的視覺體驗(yàn)。
  2. 進(jìn)度條:用進(jìn)度條的形式展示圖片的加載進(jìn)度,讓用戶能夠了解圖片的加載情況。
  3. 旋轉(zhuǎn)動(dòng)畫:使用旋轉(zhuǎn)的圖標(biāo)或者動(dòng)畫展示圖片正在加載的狀態(tài),給用戶一個(gè)視覺上的反饋。
  4. 模糊淡入:先展示一個(gè)高斯模糊的小圖或者低分辨率的圖片,等大圖加載完成后再替換成高清的圖片。

當(dāng)然每種情況都有對(duì)應(yīng)的利與弊,所適用的場景也有所不同,今天看到一個(gè)很有創(chuàng)意的圖片加載效果,針對(duì)一些特定的場景和圖片內(nèi)容效果感覺很不錯(cuò)。以下是加載的效果圖:

圖片

「注意:以下本文討論的加載效果不太適用于圖片的第一次加載,只是一種交互效果供參考」

整體的加載效果就是圖片被橫向拉伸了一樣,隨著加載的過程圖片內(nèi)容逐漸顯示出來,這對(duì)于一些圖片背景中包含純色的情況下的效果更好,因?yàn)榧兩糠植还茉趺蠢煲彩羌兩?,只有其他顏色在拉伸的過程中會(huì)交織在一起,隨著加載的過程逐漸看到廬山真面目,不得不說這是一個(gè)不錯(cuò)的交互的效果。

image-rendering: pixelated

這就是今天的主角,image-rendering: pixelated 是一種 CSS 屬性,用于控制圖像在縮放或拉伸時(shí)的顯示方式。設(shè)置為 pixelated 后,瀏覽器會(huì)以最接近原始圖像的方式呈現(xiàn)縮放后的圖像,使得圖像看起來像是由像素點(diǎn)組成的。這種方式與傳統(tǒng)的平滑縮放方式不同,可以更好地展現(xiàn)像素風(fēng)格的圖像,例如像素藝術(shù)作品、游戲素材等。簡單來說這個(gè) pixelated 可以「讓圖片變成像素風(fēng),也就是馬賽克的效果」。

image-rendering 屬性可以控制圖像在縮放或拉伸時(shí)的顯示方式,常見的屬性值有以下幾種:

  1. auto: 默認(rèn)值,瀏覽器會(huì)根據(jù)具體情況自動(dòng)選擇合適的顯示方式進(jìn)行呈現(xiàn)。
  2. crisp-edges: 將圖像呈現(xiàn)為銳利的邊緣,效果類似于將圖像強(qiáng)行放大或縮小到整數(shù)像素的尺寸。
  3. pixelated: 以原始圖像最接近的方式呈現(xiàn)縮放后的圖像,使得圖像看起來像是由像素點(diǎn)組成的。

今天主要介紹的是 pixelated,簡單實(shí)用比如給一下圖片設(shè)置 pixelated 后的效果和原圖對(duì)比就可以清晰的看到馬賽克像素化的效果。

.pixelated {
  image-rendering: pixelated;
}

tips: 要達(dá)到馬賽克效果前需要將圖片放大至模糊的效果才會(huì)生效,如果本質(zhì)是清晰的圖片是無法生效的,這里是將正常的圖片縮小再設(shè)置更大的寬高后進(jìn)行設(shè)置 pixelated。

圖片

觀察這個(gè)效果和本文一開始的飛機(jī)加載效果之間似乎并沒有什么明顯的聯(lián)系。這里使用了一個(gè)巧妙的實(shí)現(xiàn)方式,我們使用的圖片內(nèi)容主要都是橫向排列的,從左到右逐漸加載。仔細(xì)觀察可以發(fā)現(xiàn),加載過渡區(qū)域的內(nèi)容是基于當(dāng)前縱向切面的像素點(diǎn)顏色值計(jì)算的。當(dāng)我們不斷向右移動(dòng)時(shí),對(duì)應(yīng)像素點(diǎn)的顏色值也會(huì)不斷變化,從而導(dǎo)致加載橫條的顏色內(nèi)容不斷變化。下面這張示例圖表現(xiàn)了這種效果更加明顯:

圖片

這里其實(shí)是用到了scale進(jìn)行放大,但是只放大了X軸,所有效果就是被橫向拉的很長。

transform: scale(6000, 1);

那么這段代碼怎么應(yīng)用生效呢?

這里需要再引入一個(gè)知識(shí)點(diǎn),以下引用來源于 mozilla。

CSS 屬性 image-rendering 用于設(shè)置圖像縮放算法。它適用于元素本身,適用于元素其他屬性中的圖像,也應(yīng)用于子元素。

重點(diǎn)是也應(yīng)用于子元素。所以我們基于當(dāng)前的圖片元素?cái)U(kuò)展一個(gè)偽元素,在偽元素進(jìn)行 pixelated 屬性設(shè)置,核心代碼如下:

.thing::after {
  left: 300px;
  transform-origin: 0 0;
  transform: scale(6000, 1);
  image-rendering: pixelated;
  transition: all 2s cubic-bezier(.5,0,0,1) ;
}

.thing:hover::after{
  left: 720px;
}

偽元素默認(rèn)設(shè)置了 300px 的偏移量,鼠標(biāo)懸停時(shí)設(shè)置為 720px,再配合 transition 即可產(chǎn)生動(dòng)起來的效果,但這時(shí)候偽元素的色值是基于圖片最左側(cè)的色值不會(huì)有變化,如下所示:

圖片

所以這個(gè)時(shí)候還需要增加另一個(gè)屬性 background-position 上場,要讓偽元素運(yùn)動(dòng)時(shí)對(duì)應(yīng)上圖片上的縱向色值,所以增加 background-position 和 left 的數(shù)值一樣,這里需要注意的是我們是要將偽元素的背景向左移動(dòng),所以是設(shè)置負(fù)數(shù),代碼如下:

.thing:after {  
  background-position: -300px 0;
}

.thing:hover:after{
  background-position: -720px 0;
}

最后來看一下不同的圖片遇上后的新奇效果,當(dāng)下面這種圖片遇上從左往右逐漸顯示的效果后會(huì)產(chǎn)生另一種不錯(cuò)的感覺。

圖片

使用 pixelated 后的效果,本來界面上的曲線變成了直線逐漸延伸顯示。

圖片

這個(gè)蜥蜴使用了純色背景,所以在加載過程中拉伸是后也是純色的,那么就剩下主體內(nèi)容在發(fā)生變化,這也是一種不錯(cuò)的體驗(yàn)效果。

圖片

在線體驗(yàn):

https://code.juejin.cn/pen/7225892695250567223

參考:https://codepen.io/andyfitz/pen/XWxWgyY

最后

本文介紹了一個(gè)有趣的圖片加載效果,主要使用了 image-rendering: pixelated 配合 background-position 產(chǎn)生的過渡加載效果。 加載效果不太適用于圖片的第一次加載,只是一種交互效果供參考,針對(duì)不同的圖片會(huì)產(chǎn)生別樣的加載風(fēng)格,比如上面的直線內(nèi)容加載變?yōu)榍€,純色背景的內(nèi)容的加載只會(huì)有主體內(nèi)容發(fā)生變化,有興趣的可以嘗試其他內(nèi)容的圖片也許你會(huì)發(fā)現(xiàn)新大陸。

責(zé)任編輯:武曉燕 來源: 南城大前端
相關(guān)推薦

2023-11-08 10:12:40

架構(gòu)函數(shù)元素

2023-03-26 22:02:53

APMPR監(jiān)控

2024-06-21 08:15:25

2024-06-19 09:47:21

2021-10-04 09:29:41

對(duì)象池線程池

2023-09-19 08:03:50

rebase?merge

2023-01-28 10:40:56

Java虛擬機(jī)代碼

2022-02-08 09:09:45

智能指針C++

2024-04-01 08:13:59

排行榜MySQL持久化

2024-03-11 08:27:43

前端圖片格式

2023-07-10 07:17:29

無效化空窗口

2024-02-02 11:03:11

React數(shù)據(jù)Ref

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2024-09-26 09:10:08

2022-07-08 09:27:48

CSSIFC模型

2025-04-01 03:25:00

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)