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


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 相关文章推荐
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
Nov 18 HTML / CSS
CSS3属性background-size使用指南
Dec 09 HTML / CSS
css3 伪类选择器快速复习小结
Sep 10 HTML / CSS
CSS3选择器新增问题的实现
Jan 21 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
HTML5实现锚点时请使用id取代name
Sep 06 HTML / CSS
html5使用canvas画三角形
Dec 15 HTML / CSS
HTML5 Canvas 旋转风车绘制
Aug 18 HTML / CSS
为什么你写的height:100%不起作用
May 10 HTML / CSS
CSS filter 有什么神奇用途
May 25 HTML / CSS
CSS几步实现赛博朋克2077风格视觉效果
Jun 16 HTML / CSS
CSS实现章节添加自增序号的方法
Jun 23 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 采集获取指定网址的内容
2010/01/05 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php实现评论回复删除功能
2017/05/23 PHP
php生出随机字符串
2017/07/06 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
python实现雨滴下落到地面效果
2018/06/21 Python
Python中存取文件的4种不同操作
2018/07/02 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
python已协程方式处理任务实现过程
2019/12/27 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
个人自我鉴定范文
2013/10/04 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
道歉信范文
2015/05/12 职场文书
可可西里观后感
2015/06/08 职场文书