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


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来实现滚动视差效果的教程
Aug 24 HTML / CSS
CSS3绘制圆角矩形的简单示例
Sep 28 HTML / CSS
CSS3让登陆面板3D旋转起来
May 03 HTML / CSS
浅谈css3中的前缀
Jul 20 HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 HTML / CSS
HTML5网页音乐播放器的示例代码
Nov 09 HTML / CSS
html5教程制作简单画板代码分享
Dec 04 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
Jan 10 HTML / CSS
canvas实现二维码和图片合成的示例代码
Aug 01 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
Nov 04 HTML / CSS
CSS3中Animation实现简单的手指点击动画的示例
Jul 15 HTML / CSS
通过feDisplacementMap和feImage实现水波特效
Apr 24 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若干单维数组遍历方法的比较
2011/09/20 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
PDO::getAttribute讲解
2019/01/28 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
2019/05/21 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
vue+moment实现倒计时效果
2019/08/26 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
基于python log取对数详解
2018/06/08 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
python实现微信小程序自动回复
2018/09/10 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
初中数学教学反思范文
2016/02/17 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
解决jupyter notebook启动后没有token的坑
2021/04/24 Python