Posted in HTML / CSS onMarch 31, 2021
前段时间抖音上有个抖动弹幕挺火的,于是决定仿写一个,话不多说,先看效果…
效果展示
GIF图看着有点模糊,但实际效果还是不错的。
第一眼看上去也不知道该咋做,那就先把要实现的功能拆解一下吧。
- 生成一个铺满全屏的黑色背景,写上文字,然后内容居中
- 实现无缝滚动
- 实现文字抖动特效
- 旋转90度(默认横屏展示)
代码如下
.html
<div class="barrage-box">
<div class="text">抖动字幕</div>
</div>
.css
.barrage-box {
width: 100vh;
height: 100vw;
transform-origin: 50vw 50vw;
transform: rotate(90deg);
white-space: nowrap;
display: flex;
justify-content: center;
align-items: center;
background-color: #000;
overflow: hidden;
animation: aniShake 0.5s linear infinite;
}
.text {
width: 100%;
font-size: 50px;
color: #FFF;
animation: aniMove 5s linear infinite;
animation-fill-mode: forwards;
}
/* 文字滚动 */
@keyframes aniMove {
0% { transform: translateX(100%); }
100% { transform: translateX(-100%); }
}
/* 抖动字幕效果 */
@keyframes aniShake {
0%, 33% { text-shadow: 3px -3px 0px #FE008E, -5px 5px 0px #00FFFF; }
34%, 66% { text-shadow: 5px -5px 0px #FE008E, -3px 3px 0px #00FFFF; }
67%, 100% { text-shadow: 3px -3px 0px #00FFFF, -5px 5px 0px #FE008E; }
}
至此,一个包含抖动和滚动特效的手持弹幕功能就实现了。
功能并不复杂,开始我是想着用canvas画出来,但是在小程序里canvas这样的原生组件层级比较高,要是想切换特效写个修改配置的弹窗啥的,不太好弄。
简单实现一个手持弹幕功能+文字抖动特效
- Author -
aimengmei声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@