CSS filter:hue-rotate色調旋轉濾鏡實現(xiàn)按鈕批量生產
//zxx: 很多效果為CSS3濾鏡實時渲染,因此本文需要在Chrome等現(xiàn)代瀏覽器下瀏覽
一、傳統(tǒng)色值按鈕
傳統(tǒng)按鈕都是通過具體色值進行賦色的,例如下面這些按鈕和其對應的色值(出自 LuLu UI ):

有如下缺點:
每種按鈕還有不同的 :hover 和 :active 顏色需要額外設置,按鈕CSS代碼量較多,出現(xiàn)顏色也很多;
如果出現(xiàn)新的狀態(tài)按鈕,例如今年流行紫色,需要一個紫色按鈕。開發(fā)同學需要求助于設計師,因為自己選的紫色的亮度和飽和度往往和現(xiàn)有的按鈕不搭。
實際上,有更簡單的方法按鈕賦色方法,可以規(guī)避上面的缺點,就是使用CSS3 filter濾鏡中的 hue-rotate() 色調旋轉濾鏡。
二、色調旋轉濾鏡下的按鈕
實際上,我們只需要寫好一個按鈕樣式,其他各種顏色按鈕都無需再多此一舉寫一大堆CSS代碼。例如,現(xiàn)有藍色主按鈕如下:

下面就是我分分鐘實現(xiàn)的35個其他顏色的按鈕:

Hover并點擊按鈕,大家可以看到,包括 :hover 和 :active 偽類狀態(tài)也一起復制過來了。
實現(xiàn)很簡單,就是給已經實現(xiàn)的按鈕增加下面一行CSS即可:
.btn { filter: hue-rotate(60deg); }
對比示意
對比顯真章,已知寫好了一個藍色主按鈕CSS,現(xiàn)在要寫一個紅色按鈕樣式。
首先,色值法和色調法所使用HTML都是一樣的,如下:
<button class="ui-button ui-button-warning">紅按鈕</button>
但CSS方面的差異則就驚人了,見下表:

可以看到上面CSS代碼量的對比,左邊是你雙十一之前的錢包,右邊是你雙十一之后的錢包,是不是差異驚人的大!
可以看出色調旋轉濾鏡實現(xiàn)按鈕的優(yōu)點一: 巨省代碼,開發(fā)巨快!
前端也會設計
通過旋轉色調,我發(fā)現(xiàn)了LuLu UI原本按鈕中設計的諸多不科學的地方。
綠色按鈕太亮了,顏色根本不在一個飽和度范圍內,是個失敗的取舍,這也是為什么在LuLu UI這個項目中,綠色按鈕幾乎沒怎么用的原因,看上去不搭,原來是設計師的鍋!
hover態(tài)不同的按鈕設計的不一致,主色按鈕hover是顏色加深,結果紅色按鈕是hover顏色減淡,失敗失敗。
從這個角度講,我們前端要比純靠視覺感受,靠取色工具在色板上點幾個差不多顏色的設計師要更會設計。所以,當我們需要一個新的紫色按鈕的時候,我們自己來就好了,把色調旋轉到紫色一欄,bingo,按鈕完成!如果找設計師幫忙找顏色(包括交互狀態(tài)共3色),得,按照我這么多年合作的經驗,飽和度和亮度100%不一致,雖然視覺上好像一致。因為純靠視覺感受取色一定會存在偏差的。
這就是色調旋轉濾鏡實現(xiàn)按鈕的優(yōu)點二: 色值更精準,準過設計師!
三、hue-rotate濾鏡語法
hue-rotate 濾鏡除了支持 deg ,還支持其它CSS3單位,如圈數(shù) turn 以及弧度 rad 等。
例如:
hue-rotate(90deg) /* 90度旋轉 */ hue-rotate(.5turn) /* 180度旋轉 */ hue-rotate(3.142rad) /* 3.142弧度旋轉,近似一圈,也就是360度 */
四、hue-rotate濾鏡與動效
hue-rotate濾鏡還可以用來實現(xiàn)很酷的動效,例如下面這個圖像變色的效果(GIF截屏):

實現(xiàn)代碼其實很簡單:
.bird {
animation: pulse 5s linear infinite;
}
@keyframes pulse {
from { filter: hue-rotate(0); }
to { filter: hue-rotate(360deg); }
}
就是一個色調360度不斷旋轉。
眼見為實,您可以狠狠地點擊這里: CSS hue-rotate濾鏡改變圖片顏色動效demo
這種動效方法特別適合色彩豐富的圖形或圖像。
五、結語
兼容性
IE不支持,Edge13+支持,其他瀏覽器支持。

因此,本技術適用于不需要考慮兼容性的項目,如中后臺管理頁面,內部項目,移動端項目等。
其他
濾鏡玩的溜可以實現(xiàn)很多驚為天人的動效。
以前看過一個記住反相濾鏡實現(xiàn)火焰效果的動效,看了一會兒沒看明白,對色彩和濾鏡這塊掌握還不夠,不急,慢慢積累,總會明白的。
總結
以上所述是小編給大家介紹的CSS filter:hue-rotate色調旋轉濾鏡實現(xiàn)按鈕批量生產,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
filter 屬性定義了元素(通常是)的可視效果(例如:模糊與飽和度)。接下來通過本文給大家介紹微信小程序 CSS filter(濾鏡)的使用示例,感興趣的朋友一起看看吧2018-07-06
這篇文章主要介紹了詳解CSS3中強大的filter(濾鏡)屬性的相關資料,需要的朋友可以參考下2017-06-29詳解CSS透明opacity和IE各版本透明度濾鏡filter的最準確用法
CSS3的透明度屬性opacity想必大家都已經用的無處不在了。而對于不支持CSS3的瀏覽器如何進行透明處理,保持瀏覽器效果的一致,本篇文章主要介紹了詳解CSS透明opacity和IE各版2016-12-20
CSS3+Filter實現(xiàn)的圖片濾鏡特效源碼是一段可以顯示出10款不同濾鏡效果的代碼,是一款基于css3 filter濾鏡屬性制作的圖片美化特效,本段代碼適應于所有網(wǎng)頁使用,有需要的伙2016-12-08使用CSS3濾鏡的filter:blur屬性制作毛玻璃模糊效果的方法
CSS3的blur屬性可以將圖片加上模糊濾鏡的效果,下面我們就來詳細看一下使用CSS3濾鏡的filter:blur屬性制作毛玻璃模糊效果的方法,需要的朋友可以參考下2016-07-08CSS中filter濾鏡的學習筆記(靜態(tài)濾鏡及動態(tài)濾鏡)
本節(jié)為大家介紹了CSS中filter濾鏡,包括靜態(tài)濾鏡及動態(tài)濾鏡的使用方法,不了解的朋友可以參考下2014-08-08使用Filters濾鏡彌補CSS3的跨瀏覽器問題以及兼容低版本IE
跨瀏覽器兼容性是網(wǎng)頁制作永恒的難題,所以在未來一段時間里,樣式表里的-moz-,-webkit-,(-ms-,-o-)等等前綴將長期存在,除了考慮各家瀏覽器之間的兼容性外,我們還有必要2013-01-23CSS3 濾鏡 webkit-filter詳細介紹及使用方法
CSS3 開始也有濾鏡(不是 IE 的那種濾鏡),這些濾鏡效果最初是用于 SVG 的,W3C 將其引入到 CSS3 中,然后制定了 CSS Filter Effects 1.0 的規(guī)范,Webkit 率先支持了它,需2012-12-27- 前些天在做一個項目的時候,用到了陰影,陰影是個方向都有的,今天看到bricss說到filter:drop-shadow頓時豁然開朗,現(xiàn)整理了,需要的朋友可以參考下2012-12-12




