摘要:这篇CSS3栏目下的“css3实现蒙版弹幕功能”,介绍的技术点是“CSS3、蒙版、功能、弹幕、实现”,希望对大家开发技术学习和问题解决有帮助。

最近在b站上看到一种弹幕效果叫做智能防挡弹幕,也就是传说中的蒙版弹幕, 打开之后效果大概是这样的

再也不用担心男神女神的绝世容颜被花里胡哨的弹幕挡住啦,是不是感觉很神奇。

实现原理其实就是类似于ps的蒙版,也就是说将图像的一部分 “隐藏”。这里我们需要用到的是css3的mask遮罩属性。

CSS mask

CSS mask遮罩属性的历史非常久远了,远到比CSS3 border-radius等属性还要久远,最早是出现在Safari浏览器上的,差不多可以追溯到09年。但是那个时候还是ie的天下,考虑到兼容性,所有没有被推广起来。不过现在,ie已经是过去式了,所以可以放心使用了。

使用起来也比较简单

css代码如下:

.mask-image {

width: 250px;

height: 187.5px;

-webkit-mask-image: url(mask.png);

mask-image: url(mask.png);

}

蒙板可以是 CSS3 渐变或者半透明的PNG图片,蒙板元素的alpha值为0的时候会覆盖下面的元素,为1的时候会完全显示下面的内容。效果大概是这样:

好了,有了这个属性我们就可以愉快的实现蒙版弹幕了

首先,需要一张底图,模拟为视频的某一帧的图片

然后我们需要一个蒙版,遮住背景中的人物

显示代码如下:

html部分:

css部分:

.container {

width: 900px;

height: 506px;

background: url(banner.jpg) no-repeat center;

background-size: cover;

}

.barrage-wrapper {

width: 100%;

height: 100%;

position: relative;

mask-image: url(mask.png);

-webkit-mask-image: url(mask.png);

}

先看下效果:

好吧,什么也看不出来。不过实际上人物已经加上了蒙版

加点弹幕试试效果。

添加弹幕动画效果和样式

@keyframes barrage{

from{

left:100%;

transform:translateX(0);

}

to{

left:0;

transform:translateX(-100%);

}

}

.block{

position:absolute;

top: 50%;

left: 100%;

width: 100%;

color: #fff;

}

添加弹幕的js脚本

// 生成一个0~range的随机数

const geneNumber = range => Math.floor(Math.random() * range)

var barrages = [

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

'空降成功', '真香警告', '温馨提示,前方请调高音量/赶紧戴耳机', '弹幕护体!弹幕护体!弹幕护体!', ' 以上企业均已破产', '前方高能', '我从未见过如此厚颜无耻之人', '完结撒花',

]

const wrapper = document.querySelector('.barrage-wrapper')

for (const item of barrages) {

const block = document.createElement('div')

block.classList.add('block')

block.style.top = geneNumber(486) + 'px' // 弹幕的位置不能超过容器的高度

block.style.animation = `barrage ${geneNumber(20)}s linear ${geneNumber(60)}s` // 随机动画效果

block.textContent = item

wrapper.appendChild(block)

}

再看看效果

总结

以上所述是小编给大家介绍的基于css3实现蒙版弹幕功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

java实现弹幕效果_css3实现蒙版弹幕功能相关推荐

  1. java实现视频弹幕效果,SpringBoot实现视频弹幕功能 DanmuPlayer插件的使用

    前几天朋友让帮忙做一个视频弹幕网站,在找弹幕实现上发现了一个不错的开源的插件. 本文介绍一下基本使用. 一.下载插件和官方示例 直接从官网下载,可以运行官方的 demo 例子先玩一下. 我这里进行了一 ...

  2. html手机页面弹幕效果,H5移动端弹幕动画实现

    需求 已知20条内容要有弹幕效果,分成三层,速度随机. 先来看看效果: 小小弹幕效果.gif 所以这里不考虑填写生成的.只是一个展现的效果. 如果要看填写生成的,请不要浪费Time 思路把单个内容编辑 ...

  3. c#控件弹幕效果_基于C#弹幕类射击游戏的实现——(十)整合

    先看实现的效果 剩下部分代码,首先是入口,MainForm public partial class MainForm : Form { public MainForm() { // // The I ...

  4. c#控件弹幕效果_基于C#弹幕类射击游戏的实现——(二)渲染

    这个游戏打算是用C#+GDI做~所以渲染效率上还是要进行一些考虑的 public interface IRenderHandler { void Clear(Color backgroundColor ...

  5. c#控件弹幕效果_基于C#弹幕类射击游戏的实现——(六)爆炸效果

    接下来就像填充积木一样,把GameScene里用到的东西一个个写完~~ 先来个最简单的.GameBomb 一目了然 public class GameBomb : GameObject { publi ...

  6. java 弹幕 原理_Flutter 实现虎牙/斗鱼 弹幕效果

    老孟导读:用Flutter实现弹幕功能,轻松实现虎牙.斗鱼的弹幕效果. 先来一张效果图: 实现原理 弹幕的实现原理非常简单,即将一条弹幕从左侧平移到右侧,当然我们要计算弹幕垂直方向上的偏移,不然所有的 ...

  7. 不挡脸,放肆看!揭秘B站黑科技蒙版弹幕

    来源:AI前线 本文约2019字,建议阅读5分钟. 本文为你揭秘B 站推出的一种"不挡脸"的黑科技弹幕以及背后的故事. [ 导读 ]不久前,B 站发布一条官方消息,为了更好的提升用 ...

  8. Android直播中弹幕效果实现

    在B站或者其他视频网站看视频时,常常会打开弹幕效果,边看节目边看大家的吐槽.弹幕看起来很有意思,今天我们就来实现一个简单的弹幕效果. 从直观上,弹幕效果就是在一个ViewGroup上增加一些View, ...

  9. android 循环弹幕,Android自定义View实现弹幕效果

    原标题:Android自定义View实现弹幕效果 在很多视频直播中都有弹幕功能,而安卓上没有简单好用的弹幕控件,本文介绍一个自定义弹幕view的demo. 效果图: 思路: 自定义Textitem类表 ...

最新文章

  1. Gbps接口面向汽车应用
  2. 深耕大数据“试验田” 发掘新经济“钻石矿”
  3. Linux 服务器如何修改主机名
  4. flink中各种图的原理(还没搞完)
  5. matlab软件moran值,用matlab求moran并作图的具体步骤
  6. 第九章 Libgdx内存管理
  7. 数学--数论--(逆元)扩展欧几里求解+证明
  8. ajax 分页 评论刷新,评论:js无刷新分页(原创)
  9. python isnumber_Python正课18 —— 基本数据类型 - 字符串类型
  10. 油猴脚本 | 油猴脚本下载 | 油猴脚本大全
  11. SREng扫描报告分析
  12. JVM系列之:日志分析工具:GCViewer、VisualVM、GCeasy
  13. matlab算方差std,MATLAB 方差函数 var std
  14. 不出门远程控制公司电脑,这7个工具让你不用来回跑。
  15. 床上用品四件套家居纺织品网站模板
  16. 谷歌为iPhone推新版本语音电话软件 北京网游分级制度今年启动(每日关注2010.1.27)
  17. 想做网上线上引流怎么做?如何通过网络获取流量?
  18. 支持向量机(SVM)、支持向量回归(SVR)
  19. 用于时间机器备份的文件服务器地址,一日一技 | 如何解决时间机器在 NAS 上创建备份失败的问题?...
  20. 直播APP搭建好之后,该如何运营呢

热门文章

  1. 免费PPT模板 | 《超能陆战队》暖心大白通用演示PPT模板
  2. 计算机打印时颜色怎么加深,喷墨打印机部分颜色加深怎么办
  3. mybatis-plus出错:Invalid bound statement (not found): com.kuang.mapper.UserMapper.selectList
  4. 技术浅滩到商业深海,MathWorks眼中AI的未来
  5. GSM技术类有哪些最新发表的毕业论文呢?
  6. 考试末名的英国教授获诺贝尔奖
  7. 中关村翠湖科技园:高端产业聚集区 (zz.IS2120@BG57IV3.T752270541 .K)
  8. python股票基本面分析_股票基本面分析
  9. 苹果首破例,允许在韩使用替代支付系统
  10. Unity:DOTween来回运行或者缩放等LoopType.Yoyo