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 相关文章推荐
css3 响应式媒体查询的示例代码
Sep 25 HTML / CSS
CSS3制作日历实现代码
Jan 21 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
css3的过滤效果简单实例
Aug 03 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
Nov 16 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
Jul 11 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
Jul 25 HTML / CSS
html5实现的便签特效(实战分享)
Nov 29 HTML / CSS
HTML5 Video标签的属性、方法和事件汇总介绍
Apr 24 HTML / CSS
html5实现移动端适配完美写法
Nov 16 HTML / CSS
Html5页面点击遮罩层背景关闭遮罩层
Nov 30 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
Mar 27 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
自定义PHP分页函数
2006/10/09 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
python如何实现异步调用函数执行
2019/07/08 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python实现代码块儿折叠
2020/04/15 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
劳资员岗位职责
2013/11/11 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
优秀教师演讲稿
2014/05/06 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
讲座通知范文
2015/04/23 职场文书
python源码剖析之PyObject详解
2021/05/18 Python
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
TS 类型收窄教程示例详解
2022/09/23 Javascript