為什么 B 站的彈幕可以不擋人物
作者:錢得樂(lè)
https://juejin.cn/post/7141012605535010823

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


為了印證我的想法,我決定自己寫一個(gè)demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.video {
width: 668px;
height: 376px;
position: relative;
-webkit-mask-image: url("mask.svg");
-webkit-mask-size: 668px 376px;
}
.bullet {
position: absolute;
font-size: 20px;
}
</style>
</head>
<body>
<div class="video">
<div class="bullet" style="left: 100px; top: 0;">元芳,你怎么看</div>
<div class="bullet" style="left: 200px; top: 20px;">你難道就是傳說(shuō)中的奶靈</div>
<div class="bullet" style="left: 300px; top: 40px;">你好,我是胖靈</div>
<div class="bullet" style="left: 400px; top: 60px;">這是第一集,還沒(méi)有舔靈</div>
</div>
</body>
</html>
復(fù)制代碼
效果是這樣的

加一個(gè)紅背景,看的清楚一些

至此我們就實(shí)現(xiàn)了B站同款的不遮擋人物的彈幕。至于這張圖片是怎么來(lái)的,肯定是AI識(shí)別出來(lái)然后生成的,一張圖片也就一兩K,一次加載很多張也不會(huì)造成很大的負(fù)擔(dān)。
最后來(lái)看看這個(gè)神奇的css屬性吧
developer.mozilla.org/zh-CN/docs/…[1]
Experimental: 這是一個(gè)實(shí)驗(yàn)中的功能
所以在開發(fā)需求的時(shí)候可以把它當(dāng)成一個(gè)亮點(diǎn)使用,但是不能強(qiáng)依賴于這個(gè)屬性做需求。
它還有一系列的屬性,有興趣的話可以挨個(gè)試一下。

參考資料
developer.mozilla.org/zh-CN/docs/…: https://developer.mozilla.org/zh-CN/docs/Web/CSS/mask-image
-End-
最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來(lái),可以說(shuō)是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

面試題】即可獲取評(píng)論
圖片
表情
