css3 文字断裂效果


Posted in HTML / CSS onApril 22, 2022

clip-path属性

创建一个只有元素的部分区域,可以显示的剪切区域。区域内的部分显示,区域外的隐藏。

<h1 data-text="Text Crack">
    <span>Text Crack</span>
</h1>

使用元素的伪元素复制两份文本,再使用 clip-path 将元素本身、元素的两个伪元素分为3部分,分别对这3部分进行控制

body, html
{
    display: flex;
    height: 100%;
    width: 100%;
    background-color: #000;
    overflow: hidden;
    font-family: sans-serif;
}
 
h1 {
    position: relative;
    margin: auto;
    font-size: calc(20px + 5vw);
    font-weight: bold;
    color: #fff;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-shadow: 0 0 10px blue;
    user-select: none;
    white-space: nowrap;
    filter: blur(0.007em);
    animation: shake 2.5s linear forwards;
}
 
h1 span {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    clip-path: polygon(10% 0%, 44% 0%, 70% 100%, 55% 100%);
}
 
h1::before,
h1::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
}
 
h1::before {
    animation: crack1 2.5s linear forwards;
    clip-path: polygon(0% 0%, 10% 0%, 55% 100%, 0% 100%);
}
 
h1::after {
    animation: crack2 2.5s linear forwards;
    clip-path: polygon(44% 0%, 100% 0%, 100% 100%, 70% 100%);
}
 
@keyframes shake {
    5%,
    15%,
    25%,
    35%,
    55%,
    65%,
    75%,
    95% {
        filter: blur(0.018em);
        transform: translateY(0.018em) rotate(0deg);
    }
 
    10%,
    30%,
    40%,
    50%,
    70%,
    80%,
    90% {
        filter: blur(0.01em);
        transform: translateY(-0.018em) rotate(0deg);
    }
 
    20%,
    60% {
        filter: blur(0.03em);
        transform: translate(-0.018em, 0.018em) rotate(0deg);
    }
 
    45%,
    85% {
        filter: blur(0.03em);
        transform: translate(0.018em, -0.018em) rotate(0deg);
    }
 
    100% {
        filter: blur(0.007em);
        transform: translate(0) rotate(-0.5deg);
    }
}
 
@keyframes crack1 {
    0%,
    95% {
        transform: translate(-50%, -50%);
    }
 
    100% {
        transform: translate(-51%, -48%);
    }
}
 
@keyframes crack2 {
    0%,
    95% {
        transform: translate(-50%, -50%);
    }
 
    100% {
        transform: translate(-49%, -53%);
    }
}

因为使用了 clip-path 裁剪后的元素,只有元素的剪切区域才能被显示,所以我们可以分别控制 3 个部分进行动画

最终效果如下

css3 文字断裂效果

到此这篇关于css实现文字断裂效果的示例代码的文章就介绍到这了!

 

Tags in this post...

HTML / CSS 相关文章推荐
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
css3 条纹化和透明化表格Firefox下测试成功
Apr 15 HTML / CSS
前端面试必备之html5的新特性
Sep 05 HTML / CSS
详解Canvas事件绑定
Jun 27 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
May 28 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
Apr 29 HTML / CSS
html5使用canvas绘制一张图片
Dec 15 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
Jul 06 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
Dec 28 HTML / CSS
Html5应用程序缓存(Cache manifest)
Jun 04 HTML / CSS
移动端html5模拟长按事件的实现方法
Sep 30 HTML / CSS
使用canvas压缩图片大小的方法示例
Aug 02 HTML / CSS
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
Apr 19 #HTML / CSS
开发微信小程序之WXSS样式教程
Apr 18 #HTML / CSS
CSS中float高度塌陷问题的四种解决方案
Apr 18 #HTML / CSS
HTML5基础学习之文本标签控制
Mar 25 #HTML / CSS
CSS实现渐变色边框(Gradient borders)的5种方法
Mar 25 #HTML / CSS
关于CSS自定义属性与前端页面的主题切换问题
flex弹性布局详解
You might like
php函数指定默认值方法的小例子
2013/12/04 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
Python中List.index()方法的使用教程
2015/05/20 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
keras K.function获取某层的输出操作
2020/06/29 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
2014年毕业演讲稿范文
2014/05/13 职场文书
政审证明范文
2015/06/19 职场文书
python 中yaml文件用法大全
2021/07/04 Python
详解JavaScript中Arguments对象用途
2021/08/30 Javascript