【每日一更】css3 抖动文字动画

简介: 今天分享一个用 css3 的 animation 实现的一个文字抖动的动画效果

今天分享一个用 css3 的 animation 实现的一个文字抖动的动画效果,先来看成品图


c9b64bc354c1ec1bf0a03ab1eed28b52.jpg


实现思路:设置50帧,每一帧都用 transform 的 translate 属性 和 rotate 属性来设置文字的具体位置和倾斜角度,然后设置 animation 动画为无限循环即可实现该动画效果


标签元素部分


<body>       <span class="txt">欢迎来到Lpyexplore的编程小屋!</span></body>


@keyframes部分


    @keyframes shake {
        0% {        transform: translate(0, 0) rotate(0);    }
        2% {        transform: translate(6px, -2px) rotate(3.5deg);    }
        4% {        transform: translate(5px, 8px) rotate(-0.5deg);    }
        6% {        transform: translate(6px, -3px) rotate(-2.5deg);    }
        8% {        transform: translate(4px, -2px) rotate(1.5deg);    }
        10% {        transform: translate(-6px, 8px) rotate(-1.5deg);    }
        12% {        transform: translate(-5px, 5px) rotate(1.5deg);    }
        14% {        transform: translate(4px, 10px) rotate(3.5deg);    }
        16% {        transform: translate(0px, 4px) rotate(1.5deg);    }
        18% {        transform: translate(-1px, -6px) rotate(-0.5deg);    }
        20% {        transform: translate(6px, -9px) rotate(2.5deg);    }
        22% {        transform: translate(1px, -5px) rotate(-1.5deg);    }
        24% {        transform: translate(-9px, 6px) rotate(-0.5deg);    }
        26% {        transform: translate(8px, -2px) rotate(-1.5deg);    }
        28% {        transform: translate(2px, -3px) rotate(-2.5deg);    }
        30% {        transform: translate(10px, -7px) rotate(-0.5deg);    }
        32% {        transform: translate(9px, -6px) rotate(-2.5deg);    }
        34% {        transform: translate(-5px, 1px) rotate(3.5deg);    }
        36% {        transform: translate(0px, -5px) rotate(2.5deg);    }
        38% {        transform: translate(2px, 7px) rotate(-1.5deg);    }
        40% {        transform: translate(6px, 3px) rotate(-1.5deg);    }
        42% {        transform: translate(1px, -5px) rotate(-1.5deg);    }
        44% {        transform: translate(10px, -4px) rotate(-0.5deg);    }
        46% {        transform: translate(-2px, 2px) rotate(3.5deg);    }
        48% {        transform: translate(3px, 4px) rotate(-0.5deg);    }
        50% {        transform: translate(8px, 1px) rotate(-1.5deg);    }
        52% {        transform: translate(7px, 4px) rotate(-1.5deg);    }
        54% {        transform: translate(10px, 8px) rotate(-1.5deg);    }
        56% {        transform: translate(-3px, 0px) rotate(-0.5deg);    }
        58% {        transform: translate(0px, -1px) rotate(1.5deg);    }
        60% {        transform: translate(6px, 9px) rotate(-1.5deg);    }
        62% {        transform: translate(-9px, 8px) rotate(0.5deg);    }
        64% {        transform: translate(-6px, 10px) rotate(0.5deg);    }
        66% {        transform: translate(7px, 0px) rotate(0.5deg);    }
        68% {        transform: translate(3px, 8px) rotate(-0.5deg);    }
        70% {        transform: translate(-2px, -9px) rotate(1.5deg);    }
        72% {        transform: translate(-6px, 2px) rotate(1.5deg);    }
        74% {        transform: translate(-2px, 10px) rotate(-1.5deg);    }
        76% {        transform: translate(2px, 8px) rotate(2.5deg);    }
        78% {        transform: translate(6px, -2px) rotate(-0.5deg);    }
        80% {        transform: translate(6px, 8px) rotate(0.5deg);    }
        82% {        transform: translate(10px, 9px) rotate(3.5deg);    }
        84% {        transform: translate(-3px, -1px) rotate(3.5deg);    }
        86% {        transform: translate(1px, 8px) rotate(-2.5deg);    }
        88% {        transform: translate(-5px, -9px) rotate(2.5deg);    }
        90% {        transform: translate(2px, 8px) rotate(0.5deg);    }
        92% {        transform: translate(0px, -1px) rotate(1.5deg);    }
        94% {        transform: translate(-8px, -1px) rotate(0.5deg);    }
        96% {        transform: translate(-3px, 8px) rotate(-1.5deg);    }
        98% {        transform: translate(4px, 8px) rotate(0.5deg);    }
        100% {        transform: translate(0, 0) rotate(0);    }            }


    具体样式


      body{    width: 100vw;    height: 100vh;    display: flex;    justify-content: center;    align-items: center;    background: rgb(13,197,193);}.txt{    color: white;    font-weight: bold;    font-size: 18px;    border-radius: 10px;    animation: shake 5s infinite ease-in-out;}


      完整代码


        <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>发光盒子动画</title>    <style>        @keyframes shake {
                    0% {                transform: translate(0, 0) rotate(0);            }
                    2% {                transform: translate(6px, -2px) rotate(3.5deg);            }
                    4% {                transform: translate(5px, 8px) rotate(-0.5deg);            }
                    6% {                transform: translate(6px, -3px) rotate(-2.5deg);            }
                    8% {                transform: translate(4px, -2px) rotate(1.5deg);            }
                    10% {                transform: translate(-6px, 8px) rotate(-1.5deg);            }
                    12% {                transform: translate(-5px, 5px) rotate(1.5deg);            }
                    14% {                transform: translate(4px, 10px) rotate(3.5deg);            }
                    16% {                transform: translate(0px, 4px) rotate(1.5deg);            }
                    18% {                transform: translate(-1px, -6px) rotate(-0.5deg);            }
                    20% {                transform: translate(6px, -9px) rotate(2.5deg);            }
                    22% {                transform: translate(1px, -5px) rotate(-1.5deg);            }
                    24% {                transform: translate(-9px, 6px) rotate(-0.5deg);            }
                    26% {                transform: translate(8px, -2px) rotate(-1.5deg);            }
                    28% {                transform: translate(2px, -3px) rotate(-2.5deg);            }
                    30% {                transform: translate(10px, -7px) rotate(-0.5deg);            }
                    32% {                transform: translate(9px, -6px) rotate(-2.5deg);            }
                    34% {                transform: translate(-5px, 1px) rotate(3.5deg);            }
                    36% {                transform: translate(0px, -5px) rotate(2.5deg);            }
                    38% {                transform: translate(2px, 7px) rotate(-1.5deg);            }
                    40% {                transform: translate(6px, 3px) rotate(-1.5deg);            }
                    42% {                transform: translate(1px, -5px) rotate(-1.5deg);            }
                    44% {                transform: translate(10px, -4px) rotate(-0.5deg);            }
                    46% {                transform: translate(-2px, 2px) rotate(3.5deg);            }
                    48% {                transform: translate(3px, 4px) rotate(-0.5deg);            }
                    50% {                transform: translate(8px, 1px) rotate(-1.5deg);            }
                    52% {                transform: translate(7px, 4px) rotate(-1.5deg);            }
                    54% {                transform: translate(10px, 8px) rotate(-1.5deg);            }
                    56% {                transform: translate(-3px, 0px) rotate(-0.5deg);            }
                    58% {                transform: translate(0px, -1px) rotate(1.5deg);            }
                    60% {                transform: translate(6px, 9px) rotate(-1.5deg);            }
                    62% {                transform: translate(-9px, 8px) rotate(0.5deg);            }
                    64% {                transform: translate(-6px, 10px) rotate(0.5deg);            }
                    66% {                transform: translate(7px, 0px) rotate(0.5deg);            }
                    68% {                transform: translate(3px, 8px) rotate(-0.5deg);            }
                    70% {                transform: translate(-2px, -9px) rotate(1.5deg);            }
                    72% {                transform: translate(-6px, 2px) rotate(1.5deg);            }
                    74% {                transform: translate(-2px, 10px) rotate(-1.5deg);            }
                    76% {                transform: translate(2px, 8px) rotate(2.5deg);            }
                    78% {                transform: translate(6px, -2px) rotate(-0.5deg);            }
                    80% {                transform: translate(6px, 8px) rotate(0.5deg);            }
                    82% {                transform: translate(10px, 9px) rotate(3.5deg);            }
                    84% {                transform: translate(-3px, -1px) rotate(3.5deg);            }
                    86% {                transform: translate(1px, 8px) rotate(-2.5deg);            }
                    88% {                transform: translate(-5px, -9px) rotate(2.5deg);            }
                    90% {                transform: translate(2px, 8px) rotate(0.5deg);            }
                    92% {                transform: translate(0px, -1px) rotate(1.5deg);            }
                    94% {                transform: translate(-8px, -1px) rotate(0.5deg);            }
                    96% {                transform: translate(-3px, 8px) rotate(-1.5deg);            }
                    98% {                transform: translate(4px, 8px) rotate(0.5deg);            }
                    100% {                transform: translate(0, 0) rotate(0);            }                    }        body{            width: 100vw;            height: 100vh;            display: flex;            justify-content: center;            align-items: center;            background: rgb(13,197,193);        }        .txt{            color: white;            font-weight: bold;            font-size: 18px;            border-radius: 10px;            animation: shake 5s infinite ease-in-out;        }</style></head><body>       <span class="txt">欢迎来到Lpyexplore的编程小屋!</span></body></html>


        关注我,带你每天了解一个 css3 炫酷小动画

        相关文章
        |
        2天前
        jQuery+CSS3实现404背景游戏动画源码
        jQuery+CSS3实现404背景游戏动画源码
        38 22
        |
        2月前
        纯css3实现的百分比渐变进度条加载动画源码
        纯css3实现的百分比渐变进度条加载动画特效源码
        60 31
        |
        30天前
        |
        Web App开发 移动开发 JavaScript
        纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
        这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
        43 6
        |
        2月前
        |
        前端开发 JavaScript UED
        CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
        本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
        72 7
        |
        2月前
        CSS3制作的聚光灯下倒影文字选装动画特效源码
        CSS3聚光灯下倒影文字特效是一段基于CSS3实现的聚光灯下带倒影的文字旋转动画效果代码,具有真实的视觉感,同时文字还会在旋转过程中显示出灯光的反射效果,很有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
        35 6
        |
        2月前
        纯css3发光霓虹灯文字闪烁特效代码
        纯css3发光霓虹灯文字闪烁特效代码是一款彩色的店铺名称文字动画特效。
        41 6
        |
        2月前
        纯css3加载loading发光变色动画代码
        纯css3加载loading发光变色动画特效代码是一款基于css3 keyframes属性实现的发光变色圆点串联旋转loading加载动画
        26 2
        |
        2月前
        |
        Web App开发 前端开发 iOS开发
        CSS加载动画大全 126种
        CSS加载动画大全是一个css Loaders加载动画特效汇总,一共包含126种加载动画效果,不同样式不同图案,简单实用,一览包含所有,会让你在等待的过程中,体验视觉盛宴,给用户不一般的加载体验,欢迎下载试试!代码适用浏览器:搜狗、360、FireFox(建议)、Chrome、Safari、Opera、傲游、世界之窗,是一款不错的的特效插件,希望大家喜欢!
        30 2
        |
        2月前
        |
        JavaScript 前端开发
        CSS3 动画和 JavaScript 动画的性能比较
        具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。
        |
        2月前
        jQuery+CSS3模拟过山车动态的文字动画特效源码
        jQuery+CSS3模拟过山车动态的文字动画特效源码实现在全黑的背景下,画面中的文本呈现过山车的轨迹动画上下滚动转圈,且伴随文本颜色渐变效果,非常有意思,欢迎对此特效感兴趣的朋友前来下载参考。
        27 1

        热门文章

        最新文章