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开启硬件加速的使用和坑
Aug 21 HTML / CSS
微信小程序实现可实时改变转速的css3旋转动画实例代码
Sep 11 HTML / CSS
CSS3混合模式mix-blend-mode/background-blend-mode简介
Mar 15 HTML / CSS
一款基于css3和jquery实现的动画显示弹出层按钮教程
Jan 04 HTML / CSS
CSS3圆角和渐变2种常用功能详解
Jan 06 HTML / CSS
CSS3哪些新特性值得称赞
Mar 02 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
May 24 HTML / CSS
canvas线条的属性详解
Mar 27 HTML / CSS
iframe跨域的几种常用方法
Nov 11 HTML / CSS
wordpress添加Html5的表单验证required方法小结
Aug 18 HTML / CSS
HTML5 SEO优化的一些建议
Aug 27 HTML / CSS
HTML速写之Emmet语法规则的实现
Apr 07 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之数据库操作详解及乱码解决!
2007/01/02 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
Javascript alert消息换行的方法
2013/08/07 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
如何唤起类中的一个方法
2013/11/29 面试题
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
高中生评语大全
2014/04/25 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
终止劳动合同协议书
2014/10/05 职场文书
创业计划书之网吧
2019/10/10 职场文书
nginx七层负载均衡配置详解
2022/07/15 Servers