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


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弹性盒Flexbox布局使用实例
Apr 08 HTML / CSS
CSS3的first-child选择器实战攻略
Apr 28 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
Aug 01 HTML / CSS
Html5如何唤起百度地图App的方法
Jan 27 HTML / CSS
突袭HTML5之Javascript API扩展3—本地存储全新体验
Jan 31 HTML / CSS
HTML5 Canvas入门学习教程
Mar 17 HTML / CSS
从零实现一个自定义html5播放器的示例代码
Aug 01 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
Jul 16 HTML / CSS
浅谈Html5页面打开app的一些思考
Mar 30 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
Apr 29 HTML / CSS
flex弹性布局详解
Mar 20 HTML / CSS
Li list-style-image 图片垂直居中实现方法
May 21 HTML / CSS
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
Mar 31 #HTML / CSS
Web前端:CSS最强总结 附详细代码
血轮眼轮回眼特效 html+css
css3 filter属性的使用简介
Mar 31 #HTML / CSS
使用canvas实现雪花飘动效果的示例代码
利用html+css实现菜单栏缓慢下拉效果的示例代码
CSS实现多个元素在盒子内两端对齐效果
You might like
自己动手做一个SQL解释器
2006/10/09 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
jquery 双色表格实现代码
2009/12/08 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
全面了解js中的script标签
2016/07/04 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
Vue 中axios配置实例详解
2018/07/27 Javascript
解决vue 绑定对象内点击事件失效问题
2018/09/05 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
vue--vuex详解
2019/04/15 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
python实现在线翻译
2020/06/18 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
班主任经验交流会主持词
2014/04/01 职场文书
心理咨询承诺书
2014/05/20 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android