跳动文字的实现

简介: 跳动文字的实现

效果图

image.png

页面结构

我们将#app盒子铺满整个屏幕,将#bounce作为承载跳动文字的盒子

<div id="app">
        <ul id="bounce"></ul>
    </div>

样式

清除元素的默认内外边距,将#app盒子铺满全屏后,利用flex布局将内容位列在屏幕正中心

* {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        #app {
            width: 100vw;
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            background: #000;
        }

跳动文字动画实现

跳动文字的动画,我们采用csstransform: translateY属性进行实现,通过这个属性实现元素的上下移动,动画终点时元素向上移动30px

/* 跳动动画 */
        @keyframes jump {
            100% {
                transform: translateY(-30px);
            }
        }

跳动文字

给跳动文字的大盒子flex布局将内容水平垂直居中,跳动文字每一个都占一个元素,这样便于动画进行,然后再给跳动文字盒子设置字体大小和样式,再给跳动文字盒子添加上跳动动画,开启动画无限循环以及可以反向播放动画,开启反向动画可以让动画执行完成之后可以进行反向播放,这样不会出现动画执行完之后元素突然回到初始位置

/*跳动大盒子 */
        #bounce {
            display: flex;
            justify-content: center;
            align-items: center;
        }
           /* 跳动盒子 */
        #bounce>li {
            margin-right: 10px;
            font-size: 30px;
            color: #fff;
            font-weight: bold;
            animation: jump 0.6s linear infinite alternate;
        }

跳动文字逻辑实现

我们将要跳动的文字放到str变量中,speed是动画的执行速度,我们默认是0.5s,然后通过js方法获取到跳动文字父级,然后通过js方法把我们的跳动文字分割成数组,在进行循环,每次循环都会创建一个dom元素,将跳动的每一个文字,都插入到新创建的dom元素中,并且设置一下动画执行时间,我们这里需要套入公式(当前跳动文字的长度- 当前元素的下标 * 默认的动画执行速度),动画执行时间是负数,最后插入到跳动文字父级中即可

let str = '中秋快乐!';
        let speed = 0.5;
        let bounce = document.getElementById('bounce');
        str.split('').map((R, index) => {
            let lis = document.createElement('li');
            lis.innerText = R;
            lis.style = `animation-delay: -${parseFloat((str.length - index) * speed)}s;`
            bounce.appendChild(lis)
        })

代码放到码上掘金上了,感兴趣的大家可以看一下!

image.png

相关文章
|
19天前
纯css3发光霓虹灯文字闪烁特效代码
纯css3发光霓虹灯文字闪烁特效代码是一款彩色的店铺名称文字动画特效。
31 6
|
索引
echarts x轴文字显示不全(xAxis文字倾斜比较全面的3种做法值得推荐)
echarts x轴标签文字过多导致显示不全 如图: 解决办法1:xAxis.axisLabel 属性 axisLabel的类型是object ,主要作用是:坐标轴刻度标签的相关设置。(当然yAxis也是一样有这个属性的) ...
4156 0
|
4月前
PPT 动画-文字渐入
PPT 动画-文字渐入
14 0
|
6月前
|
前端开发
css动画效果(边框流光闪烁阴影效果)
css动画效果(边框流光闪烁阴影效果)
|
5月前
黑色方块滚动印刷文字404单页源码
黑色方块滚动印刷文字404源码,黑色404方块滚动留下数字
25 0
|
7月前
如何实现图片多种颜色的文字混排并且带的背景颜色范围比文字图片范围大
如何实现图片多种颜色的文字混排并且带的背景颜色范围比文字图片范围大
46 1
|
JavaScript
html+css+js实现无缝隙跑马灯
html+css+js实现无缝隙跑马灯
177 0
【PR】简单一招教你使用蒙版做文字动画
【PR】简单一招教你使用蒙版做文字动画
135 0
【PR】简单一招教你使用蒙版做文字动画
|
Web App开发 前端开发
文字底能玩出多少花样(五)实现渐变文字和文字倒影
文字底能玩出多少花样(五)实现渐变文字和文字倒影
146 0
文字底能玩出多少花样(五)实现渐变文字和文字倒影
|
存储 前端开发 JavaScript
文字到底能玩出多少花样(一) 炫酷文字粒子效果实现
文字到底能玩出多少花样(一) 炫酷文字粒子效果实现
205 0