简单实现一个手持弹幕功能+文字抖动特效


Posted in HTML / CSS onMarch 31, 2021

前段时间抖音上有个抖动弹幕挺火的,于是决定仿写一个,话不多说,先看效果…


效果展示

简单实现一个手持弹幕功能+文字抖动特效

GIF图看着有点模糊,但实际效果还是不错的。


第一眼看上去也不知道该咋做,那就先把要实现的功能拆解一下吧。

  1. 生成一个铺满全屏的黑色背景,写上文字,然后内容居中
  2. 实现无缝滚动
  3. 实现文字抖动特效
  4. 旋转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这样的原生组件层级比较高,要是想切换特效写个修改配置的弹窗啥的,不太好弄。

HTML / CSS 相关文章推荐
CSS3实现超慢速移动动画效果非常流畅无卡顿
Jun 15 HTML / CSS
基于css3的属性transition制作菜单导航效果
Sep 01 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
Nov 16 HTML / CSS
css3 伪类选择器快速复习小结
Sep 10 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
Sep 25 HTML / CSS
自定义html标记替换html5新增元素
Oct 17 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
Html5 滚动穿透的方法
May 13 HTML / CSS
html如何对span设置宽度
Oct 30 HTML / CSS
Html5之自定义属性(data-,dataset)
Nov 19 HTML / CSS
HTML5自定义mp3播放器源码
Jan 06 HTML / CSS
DIV CSS实现网页背景半透明效果
Dec 06 HTML / CSS
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
Mar 31 #HTML / CSS
Web前端:CSS最强总结 附详细代码
血轮眼轮回眼特效 html+css
css3 filter属性的使用简介
Mar 31 #HTML / CSS
使用canvas实现雪花飘动效果的示例代码
利用html+css实现菜单栏缓慢下拉效果的示例代码
CSS实现多个元素在盒子内两端对齐效果
You might like
PHP ajax 分页类代码
2008/11/13 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
Python中使用dom模块生成XML文件示例
2015/04/05 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
详解Python多线程
2016/11/14 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
租房协议书怎么写
2014/04/10 职场文书
新农村建设标语
2014/06/24 职场文书
运动会新闻稿
2015/07/17 职场文书
市级三好生竞选稿
2015/11/21 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
redis内存空间效率问题的深入探究
2021/05/17 Redis
详解Vue3使用axios的配置教程
2022/04/29 Vue.js