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

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


为了印证我的想法,我决定自己写一个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;">你难道就是传说中的奶灵</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

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

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

转载:https://juejin.cn/post/7141012605535010823

前端解决弹幕可以不挡人物相关推荐

  1. 【mask-image】为什么 B 站的弹幕可以不挡人物

    为什么 B 站的弹幕可以不挡人物,以chrome浏览器为例子,-webkit-mask-image可以做到. -webkit-mask-image是一个实验中的功能 此功能某些浏览器尚在开发中,请参考 ...

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

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 作者:钱得乐 https://juejin.cn/post/7141012605535010 ...

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

    来自:掘金,作者:钱得乐 链接:https://juejin.cn/post/7141012605535010823 那天在B站看视频的时候偶然发现当字幕遇到人物的时候就被裁切了,不会挡住人物,觉得很 ...

  4. 技术解析:为什么 B 站的弹幕可以不挡人物?

    那天在B站看视频的时候偶然发现当字幕遇到人物的时候就被裁切了,不会挡住人物,觉得很神奇,于是决定一探究竟. 高端的效果,往往只需要采用最朴素的实现方式,忙碌了两个小时,陈师傅打开了F12,豁然开朗.一 ...

  5. 前端解决跨域问题的8种方案(最新最全)

    .同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.j ...

  6. 前端——解决微信网页清除缓存的方法

    前端--解决微信网页清除缓存的方法 参考文章: (1)前端--解决微信网页清除缓存的方法 (2)https://www.cnblogs.com/fkcqwq/p/9604184.html 备忘一下.

  7. 前端解决跨域问题的8种方案

    2019独角兽企业重金招聘Python工程师标准>>> 1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/ ...

  8. [转] js前端解决跨域问题的8种方案(最新最全)

    [转] js前端解决跨域问题的8种方案(最新最全) 参考文章: (1)[转] js前端解决跨域问题的8种方案(最新最全) (2)https://www.cnblogs.com/chris-oil/p/ ...

  9. 前端解决:此图片来自微信公众平台未经允许不可引用

    前端解决:此图片来自微信公众平台未经允许不可引用 方法一: <meta name="referrer" content="no-referrer" /&g ...

最新文章

  1. NIO详解(一):java网络编程IO总结(BIO、NIO、AIO)
  2. 以太坊DAPP[2]-×××-react框架与web3实例
  3. 七十八、Antd 实现 TodoList 页面布局和Redux入门
  4. iOS13后添加SceneDelegate初始化window
  5. 字母c语言定义为什么变量,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  6. CodeForces-999D Equalize the Remainders (贪心+神奇的STL)
  7. 设计灵感|什么样的登录页能让用户感到体贴?
  8. 无限级分类递归法(超简单)
  9. 我国低轨宽带通信卫星系统建设迈出了实质性的一步
  10. Linux有待提高的七个领域
  11. mysql 定时器_MySQL定时器开启、调用实现代码
  12. win10 如何启用虚拟化 Hyper-V
  13. ATeam社区(牛客网项目第七章)
  14. 华三模拟器 HCL v5.3.0 使用第三方控制台(SecureCRT、XShell、MobaXterm)教程
  15. optuna-自动化调参利器
  16. 中国人民大学计算机专硕好考吗,干货:中国人民大学考研复试成功经验分享,值得收藏!...
  17. BDW01手把手系列04:基于TencentOS Tiny、腾讯云、腾讯连连之自制定位器
  18. 信息时代的管理信息系统
  19. python 小说人物分析_用python分析小说人物关系(二)——实战篇
  20. Golang 插件开发入门教程

热门文章

  1. 微信小程序授权登录简单流程
  2. Linux系统——退出vi编辑模式
  3. 18身份证号码编码规则
  4. android 高级 面试题
  5. BaiduMap---百度地图官方Demo之公交线路查询功能(介绍查询公交线路功能)
  6. RK3399 LINUX RTL8821CS移植
  7. Vue+ElementUI实现两级、可动态扩展表头的表格
  8. 以pptp方式登陆管理单口旁路由
  9. 视频怎么压缩大小?教你几个压缩视频小技巧
  10. 百伯截流垂直招聘网站 中小网站的得与失