說實話,css3越來越強大,使用css也可以做越來越多意想不到的效果。
今天,見到有人用css3實現了ps的蒙版效果,如下所示:
實現原理
這個動畫,其實也並不複雜。它使用background-clip
實現了文字蒙版
的效果,然後結合了背景圖片的animation實現瞭如上圖所示的文字蒙版動畫。
用css3做蒙版效果
常見的有兩種,一種是圖形的,另一種是文字的。
圖形蒙版
這裏要使用的到時clip-path
,它的作用是根據你指定的圖形的輪廓來保留剩餘的區域,如果你制定的圖形是圓形,那麼剩餘的就是個圓形。
它有個特點就是,你可以把你的盒子模型定義爲不規則的圖形。
我們都知道原來的css只允許我們把元素定義成矩形和正方形,又可以在矩形區域內嵌套其他的矩形或者正方形元素。而現在我們可以定義一個不規則的圖形,然後在這個不規則的圖形內定義其他的元素。
這樣說可能還是有點兒含糊。假如你在一個元素內填充滿文字,以前只能沿着矩形或者正方形的邊緣填充,而現在使用clip-path
可以使文字沿着不規則的圖形的邊緣填充。
具體可參考文字環繞
接着說圖形蒙版,有兩種實現:
一種是保留剪切圖形輪廓內的內容,可以參考shpape-masking。
另一種使保留剪切圖內之外的內容,可參考Reverse clip path。這個動畫效果是由背景的gif和視頻結合的,當然也可以使用css3的animation。
文字蒙版
文字蒙版使用的使css3中的backgorund-clip
,這個屬性支持border-box
,padding-box
,content-box
和text
等屬性,具體使用可參考mdn background-clip。
它和clip
的效果類似,都是剪切後剩餘部分的內容,text
這個屬性值比較特殊,針對的是元素內的文字,其他的針對的是元素內內容的顯示區域。
背景的動畫很簡單就是一個animation動畫。
參考示例:Merry Christmas