为什么 B 站的弹幕可以不挡人物?

戳上方蓝字“Java知音”关注我

那天在B站看视频的时候偶然发现当字幕遇到人物的时候就被裁切了,不会挡住人物,觉得很神奇,于是决定一探究竟。

高端的效果,往往只需要采用最朴素的实现方式,忙碌了两个小时,陈师傅打开了F12,豁然开朗。一张图片+一个属性,直接搞定。

为了印证我的想法,我决定自己写一个demo

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .video {
      width668px;
      height376px;
      position: relative;
      -webkit-mask-imageurl("mask.svg");
      -webkit-mask-size668px 376px;
    }
    .bullet {
      position: absolute;
      font-size20px;
    }
  
</style>
</head>
<body>
<div class="video">
  <div class="bullet" style="left: 100px; top: 0;">元芳,你怎么看</div>
  <div class="bullet" style="left: 200px; top: 20px;">你难道就是传说中的奶灵</div>
  <div class="bullet" style="left: 300px; top: 40px;">你好,我是胖灵</div>
  <div class="bullet" style="left: 400px; top: 60px;">这是第一集,还没有舔灵</div>
</div>
</body>
</html>

效果是这样的

加一个红背景,看的清楚一些

至此我们就实现了B站同款的不遮挡人物的弹幕。至于这张图片是怎么来的,肯定是AI识别出来然后生成的,一张图片也就一两K,一次加载很多张也不会造成很大的负担。

最后来看看这个神奇的css属性吧

https://developer.mozilla.org/zh-CN/docs/Web/CSS/mask-image

Experimental:  这是一个实验中的功能

所以在开发需求的时候可以把它当成一个亮点使用,但是不能强依赖于这个属性做需求。

它还有一系列的属性,有兴趣的话可以挨个试一下。

来源:juejin.cn/post/7141012605535010823

后端专属技术群

构建高质量的技术交流社群,欢迎从事编程开发、技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!

文明发言,以交流技术职位内推行业探讨为主

广告人士勿入,切勿轻信私聊,防止被骗

加我好友,拉你进群

相关推荐

  • 一个优秀 Maven 项目,各 Model 间最佳继承设计方案
  • 标星 43.1 K!最火跨平台笔记开源项目
  • 关于OIDC,一种现代身份验证协议
  • 16 个在面试前需要知道的系统设计概念
  • CSS加载会造成堵塞吗?
  • Spring Boot集成zookeeper快速入门Demo
  • 璩静认为打工人不如螺丝钉,对吗?
  • 万众期待!JavaScript 宣布 Signals 即将到来!颠覆性的 API !
  • Python 对象有哪几种,我们可以从哪些角度进行分类呢?
  • 面试官:偏向锁的十连问,你能接住几个?
  • 面试官:JVM 对锁都进行了哪些优化?
  • 领导年薪30w,五一节后再没来上班,同事说被别的公司挖走了,就在下班时,同事悄悄告诉我领导让他跳槽过去,给他涨薪50%。
  • @Async注解失效的 9 种场景
  • 陈丹琦团队提出最新MoE架构Lory
  • 原作者带队,LSTM真杀回来了!
  • 突破!颜宁,发国产神刊!
  • [开源]一个Windows远程控制系统,实时监控海量客户端,支持Web端
  • 报告显示AI既提高要求,也打破职业瓶颈;通义千问 2.5 大模型发布
  • 如何提升个人技术影响力?
  • 推荐我常用的爬虫工具,三种爬虫方式,搞定反爬和动态页面