国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

前端如何實現網頁變灰功能?

開發 前端
今天從前端的角度看看網頁變灰是如何實現的,以及相關使用技巧。

今天從前端的角度看看網頁變灰是如何實現的,以及相關使用技巧。

實現思路

先來看看一些主流網站是如何實現置灰的:

  • BiliBili:

圖片

  • 淘寶:

圖片

  • 京東:

圖片

可以看到,這些網站實現置灰的方式不太一樣,但是大同小異。本質上都是使用了 CSS 中的 filter 屬性。下面是 MDN 對 filter 屬性的解釋:

CSS 屬性 filter 將模糊或顏色偏移等圖形效果應用于元素。濾鏡通常用于調整圖像、背景和邊框的渲染。

簡單來說,filter 屬性就是用來給元素添加不同的濾鏡。該屬性中支持傳入多種 Filter 函數,其中 grayscale() 函數就是用于置灰的關鍵。grayscale() 函數將改變輸入圖像灰度,該函數有一個參數,表示轉換為灰度的比例。當值為 100% 時,完全轉為灰度圖像;當值為 0% 時圖像無變化。值在 0% 到 100% 之間,則是效果的線性乘數。若未設置值,默認是 0。

因此,只需將頁面的 html 元素設置以下樣式即可實現頁面置灰:

html {
filter: grayscale(100%);
}

那為啥很多網站的置灰不止這一行屬性呢?可以看到京東的置灰代碼如下:

html.o2_gray {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
-webkit-filter: gray;
filter: gray;
-webkit-filter: progid:dximagetransform.microsoft.basicimage(grayscale=1);
filter: progid:dximagetransform.microsoft.basicimage(grayscale=1);
}

其實這些屬性最終的效果都是一樣的,它們為了對 filter 屬性進行兼容。filter 屬性是 CSS3 增加的屬性,在不同瀏覽器以及低版本瀏覽器上,filter 屬性的兼容性不盡相同:

圖片

對于上面的代碼,其中:

  • -webkit-filter:帶有 webkit 前綴可以在 webkit 內核的瀏覽器中生效;
  • -moz-filter:帶有 moz  前綴可以在 Firefox 瀏覽器中生效;
  • -ms-filter:帶有 ms 前綴可以在 IE 瀏覽器生效;
  • -o-filter:帶有 o 前綴可以在 Opera 瀏覽器生效;
  • 最后三行都是為了兼容 IE 內核的瀏覽器。

那如何實現動態添加呢?只需要將這些濾鏡屬性寫在一個類中,在需要的時候動態的將該類型添加到 html 標簽上即可。

.gray {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
-webkit-filter: gray;
filter: gray;
-webkit-filter: progid:dximagetransform.microsoft.basicimage(grayscale=1);
filter: progid:dximagetransform.microsoft.basicimage(grayscale=1);
}

相關拓展

接下來我們看看 filter 屬性還有哪些實用的屬性值!

filter: blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | sepia() | saturate() | url();

(1)blur():模糊

blur() 函數用于設置元素模糊效果, 它將高斯模糊視覺效果應用于元素。此函數接受一個 CSS 長度值來確定屏幕上有多少像素需要相互融合以生成模糊結果。傳遞的 CSS 長度值越大,應用到元素的模糊度就越高。如果不提供值,則使用默認值 0。

.image {
-webkit-filter: blur(0|2px|5px);
filter: blur(0|2px|5px);
}

下面是使用三個值時對應的效果:

圖片

這個屬性可以用來實現常見的毛玻璃效果。

(2)brightness():亮度

brightness() 函數可用于調整圖像的亮度級別,使其看起來更亮或更暗。當值為 0% 時,會產生全黑圖像。值為 100% 或 1 會使圖像保持其原始亮度級別。大于或小于 100% 或 1 的值決定圖像的暗度或亮度。

.image {
-webkit-filter: brightness(50%|100%|200%);
filter: brightness(50%|100%|200%);
}

下面是使用三個值時對應的效果:

圖片

(3)contrast():對比度

contrast() 函數用于調整圖像的對比度,也就是調整圖像最暗和最亮部分之間的亮度差異 。它接受百分比或小數值來確定圖像的對比度級別——值為 0 會導致完全灰色的圖像。高于 100% 和 1 的值會增加對比度,而低于 100% 的參數會降低圖像的對比度。

.image {
-webkit-filter: contrast(50%|100%|200%);
filter: contrast(50%|100%|200%);
}

下面是使用三個值時對應的效果:

圖片

(4)opacity():不透明度

opacity() 函數將透明效果應用于圖像。它接受百分比或小數值來決定應用于圖像的透明度。0% 或 0 的不透明度將產生完全透明的元素。100% 不透明度將顯示不透明。將不透明度設置在 0% 和 100% 之間將使元素或圖像部分透明。

.image {
-webkit-filter: opacity(10%|40%|80%);
filter: opacity(10%|40%|80%);
}

下面是使用三個值時對應的效果:

圖片

那這個不透明度濾鏡和CSS中的 opacity 屬性有啥區別的?它們都用于控制元素的透明度。但是 filter 屬性會啟動硬件加速。瀏覽器會將計算任務卸載到圖形處理單元 (GPU) — 一種旨在加速系統內圖形渲染的專用處理器。這會提高瀏覽器的效率并釋放 CPU 來執行其他任務。

(5)sepia() :棕褐色

sepia() 函數可以為圖像添加柔和的褐色色調,使圖像看起來更溫暖、更復古。它類似于使用灰度濾鏡,但色調為褐色。它接受 0 到 1 之間的小數值,或最大為 100% 的百分比值。值為 0 會使圖像保持不變。值為 100% 或 1 會將圖像完全變為棕褐色,而介于 0% 和 100% 之間的值會使圖像的色調介于其原始顏色和完全棕褐色之間。

.image {
-webkit-filter: sepia(10%|40%|80%);
filter: sepia(10%|40%|80%);
}

下面是使用三個值時對應的效果:

圖片

(6)drop-shadow():陰影

drop-shadow() 函數用于增加圖像的陰影,和 box-shadow 的作用類似,使圖像看起來更加立體。

drop-shadow() 函數接受四個參數:

  • <offset-x>:長度值,指定元素和投影之間的水平距離。正值將陰影置于元素右側,負值將陰影置于左側。
  • <offset-y>:長度值,指定元素和投影之間的垂直距離。正值將陰影置于元素下方,負值將陰影置于其上方。
  • <blur-radius>: 陰影的模糊半徑指定為 CSS 長度單位。值越大,陰影變得越模糊。如果未指定,則默認為 0,產生清晰且不模糊的陰影。不允許使用負值。
  • <color>:陰影的顏色。如果未指定,則默認為黑色。
.image-1 {
filter: drop-shadow(0);
}

.image-2 {
-webkit-filter: drop-shadow(4px 4px 10px yellow);
filter: drop-shadow(4px 4px 10px yellow);
}

.image-3 {
-webkit-filter: drop-shadow(8px 8px 12px yellow);
filter: drop-shadow(8px 8px 12px yellow);
}

下面是使用三個值時對應的效果:

圖片

(7)saturate():飽和度

saturate() 函數用于改變元素中顏色的飽和度。飽和元素的顏色比較鮮艷;對于曝光不足的圖像可以增加飽和度,反之亦然。飽和度可以用百分比表示,0% 表示完全不飽和,100% 表示與原圖像一樣。

.image {
-webkit-filter: saturate(10%|150%|350%);
filter: saturate(10%|150%|350%);
}

下面是使用三個值時對應的效果:

圖片

(8)注意事項

上面介紹的濾鏡都是單個使用的,其實 filter 屬性支持設置多個濾鏡,其語法如下:

.multiple-effects {
filter: blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
}

CSS 會根據它們出現的順序將它們應用于元素:

img {
filter: opacity(50%) drop-shadow(20px 10px 0px black);
}

除此之外,filter 屬性還接受以下兩個值:

  • initial?:filter? 屬性的默認值,會解析為none。
  • inherit?:從元素的直接父級計算的filter 屬性的值。


責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2022-11-23 10:22:12

組件庫前端

2022-11-24 16:11:27

2011-07-25 14:49:36

jQuery

2020-11-24 11:00:24

前端

2025-07-11 08:23:39

2020-09-22 09:41:09

前端

2017-12-11 14:50:34

前端Javascript文本朗讀

2011-11-10 17:45:15

Opera瀏覽器HTML5

2023-05-05 17:11:11

前端Mousetrap方式

2025-11-13 09:30:11

2023-11-02 10:14:50

TinykeysWeb應用

2022-01-28 14:20:53

前端代碼中斷

2023-03-23 09:09:32

前端詞云效果

2023-02-23 15:05:07

前端Web開發

2009-12-08 15:06:33

WCF傳輸DataSe

2021-07-22 10:25:07

JS驗證碼前端

2024-03-19 00:52:52

前端網頁篡改

2021-10-28 19:36:20

SQLExcel功能

2020-12-30 08:12:17

SQLExcel分列
點贊
收藏

51CTO技術棧公眾號

色天下一区二区三区| 国产网站欧美日韩免费精品在线观看| 色综合色综合色综合| 欧美亚洲国产日本| 草久在线视频| 日韩欧美美女在线观看| 快she精品国产999| 精品性高朝久久久久久久| 欧美视频在线免费播放| 日韩影片在线播放| 免费观看在线黄色网| 久久国产成人午夜av影院| 中文字幕日韩精品在线观看| 成年人黄视频网站| 日韩电影在线一区二区| 中文综合在线观看| 50路60路老熟妇啪啪| 天堂va蜜桃一区二区三区漫画版| 亚洲激情免费观看| 成人手机在线播放| 福利在线一区二区| 欧美一区二区三区四区久久| 国产av不卡一区二区| 日韩视频精品在线| 已婚少妇美妙人妻系列| 看黄网站在线| 国产精品久久久久久久免费软件| 亚洲国产视频一区二区| 琪琪第一精品导航| 国产精品亚洲a| 先锋影音一区二区| 一区二区三区不卡在线观看| 国内精品视频在线播放| 丝袜综合欧美| 日本aⅴ精品一区二区三区| 91精品国产入口在线| 欧美极品色图| 精品国产一区三区| jizz亚洲| 成人性生交大片免费看视频直播| 国产成人无码一二三区视频| 超碰国产精品一区二页| 午夜视频一区| 亚洲一区二区精品久久av| 国产精品福利网| 另类中文字幕国产精品| 国产九九视频一区二区三区| 欧美日韩精品三区| 日韩中文一区| 精品裸体bbb| 日韩av在线免费观看不卡| 欧美成人vr18sexvr| 日韩av大全| 卡通欧美亚洲| 国产91综合一区在线观看| 欧美一区二区精品在线| 国产成人av影视| 韩国一区二区三区在线观看| 欧美性20hd另类| 国产日产亚洲精品| 中文天堂av| xvideos.蜜桃一区二区| 国产精品国产自产拍高清av| 久久亚洲a v| 亚洲国产美女| 国产精品永久免费| 国产黄人亚洲片| 久久久中精品2020中文| jlzzjlzz欧美大全| 中文亚洲字幕| 亚洲人成在线电影| 日本中文视频| 97青娱国产盛宴精品视频| 色中色一区二区| 成人av一级片| 欧美午夜寂寞| 欧美精品 日韩| 中文字幕日韩免费视频| 一女二男3p波多野结衣| 欧美黄色影院| 国内精品久久久| 91精品国产福利在线观看麻豆| 成人中文字幕+乱码+中文字幕| 国产精品久久久久久久| 国产呦系列欧美呦日韩呦| 亚洲一本视频| 久久精品国产99精品国产亚洲性色| 在线亚洲精品| 99精品一区二区三区的区别| 精久久久久久| 偷拍盗摄高潮叫床对白清晰| 中文字幕+乱码+中文字幕一区| 最新中文字幕在线观看| 欧美人与性动xxxx| 免费在线观看污视频| 精品中文视频在线| 国产精品chinese在线观看| 精品国产免费久久久久久尖叫| 91网站黄www| 三区四区电影在线观看| 神马久久桃色视频| 亚洲不卡av不卡一区二区| 国产又粗又硬又长| 久久久久久久综合日本| 免费高清在线| 最好看的2019年中文视频 | 国产精品一区二区三区www| 98国产高清一区| 欧美 日韩 国产 一区| 激情五月婷婷六月| 欧美午夜电影在线播放| jizz国产精品| 日韩欧美亚洲在线| 在线播放亚洲| 国产午夜在线| 精品视频在线观看日韩| 在线日韩中文| 欧美日韩国产影片| www.av蜜桃| heyzo国产| 91麻豆免费看| 黄色一级在线视频| 欧美另类变人与禽xxxxx| аⅴ资源新版在线天堂| 日本道精品一区二区三区| 91av亚洲| 国产精品毛片a∨一区二区三区|国| 欧美在线关看| 亚洲高清在线观看一区| 夜夜夜精品看看| 欧亚av在线| 麻豆av福利av久久av| 亚洲丝袜精品丝袜在线| aaa大片在线观看| 精品国产一区二区三区久久久| 亚洲第一天堂| 在线免费视频a| 欧美精品中文字幕一区| 国产精品亚洲欧美| 视频午夜在线| 91国产精品91| 国产精品成人免费在线| 伊人久久精品| 久久涩涩网站| 亚洲欧洲三级电影| 欧美成人性生活视频| 538国产精品一区二区免费视频| 国产成人免费在线观看| 黄色片av在线| 亚洲欧美精品伊人久久| 久色成人在线| 一二三四在线视频观看社区| 日韩av电影院| 亚洲精品写真福利| 伊人久久综合网另类网站| 青青在线视频免费观看| 日韩午夜激情av| 亚洲精品国产首次亮相| 最新av在线| 91色中文字幕| 中文字幕日韩一区| 欧美aaaxxxx做受视频| 亚洲色婷婷久久精品av蜜桃| 国产网站欧美日韩免费精品在线观看 | 777视频在线| 国产成人精品最新| 亚洲国产精品一区二区久久恐怖片| 国产成人1区| 日本aⅴ中文| 国产精品视频免费观看| 日韩免费电影一区| 国产日韩欧美精品在线| 狠狠做六月爱婷婷综合aⅴ| 日韩在线资源| 日韩电影免费观看高清完整| 在线观看精品国产视频| 91亚洲资源网| 91精品天堂福利在线观看| 超碰97免费在线| 黄黄视频在线观看| 欧美中文在线观看| 日韩欧美国产电影| 欧美国产综合一区二区| 日本一区二区高清不卡| 成人黄视频在线观看| 亚洲色欲综合一区二区三区| 国产精品视频一区国模私拍 | а√天堂中文在线资源8| 久久久久久久久久网| 欧美亚洲激情视频| 91黄色免费网站| 美女一区二区三区| 成人性教育av免费网址| 男人天堂av网站| 欧美成人蜜桃| 国产+人+亚洲| 欧美变态tickling挠脚心| 亚洲美女一区二区三区| 日本伊人精品一区二区三区观看方式| 国产厕拍一区|