close

來源 | 掘金

作者|錢得樂

https://juejin.cn/post/7141012605535010823

那天在 B 站看視頻的時候,偶然發現當字幕遇到人物的時候就被裁切了,不會擋住人物,覺得很神奇,於是決定一探究竟。

高端的效果,往往只需要採用最樸素的實現方式,忙碌了兩個小時,陳師傅打開了 F12,豁然開朗。一張圖片 + 一個屬性,直接搞定。

為了印證我的想法,我決定自己寫一個 demo。

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>.video{width:668px;height:376px;position:relative;-webkit-mask-image:url("mask.svg");-webkit-mask-size:668px376px;}.bullet{position:absolute;font-size:20px;}</style></head><body><divclass="video"><divclass="bullet"style="left:100px;top:0;">元芳,你怎麼看</div><divclass="bullet"style="left:200px;top:20px;">你難道就是傳說中的奶靈</div><divclass="bullet"style="left:300px;top:40px;">你好,我是胖靈</div><divclass="bullet"style="left:400px;top:60px;">這是第一集,還沒有舔靈</div></div></body></html>複製代碼

效果是這樣的:

加一個紅背景,看得更清楚一些:

至此,我們就實現了 B 站同款的不遮擋人物的彈幕。

至於這張圖片是怎麼來的,肯定是 AI 識別出來然後生成的,一張圖片也就一兩 K,一次加載很多張也不會造成很大的負擔。

最後,來看看這個神奇的 css 屬性mask-image吧:https://developer.mozilla.org/zh-CN/docs/Web/CSS/mask-image。

這是一個實驗中的功能,此功能某些瀏覽器尚在開發中,在不同的瀏覽器中適合使用的前綴也不一樣。

在開發需求的時候可以把它當成一個亮點使用,但是不能強依賴於這個屬性做需求。

這裡還有一系列的屬性,有興趣的話可以挨個試一下。

- END -

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()