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制作动感导航条示例
Jan 26 HTML / CSS
css3实现可滑动跳转的分页插件示例
May 08 HTML / CSS
HTML5时代CSS设置漂亮字体取代图片
Sep 04 HTML / CSS
css sprite简单实例
May 23 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
Nov 17 HTML / CSS
鲜为人知的HTML5语音合成功能
May 17 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
Jun 11 HTML / CSS
html5实现canvas阴影效果示例
May 07 HTML / CSS
深入理解HTML5定时器requestAnimationFrame的使用
Dec 12 HTML / CSS
flex弹性布局详解
Mar 20 HTML / CSS
css弧边选项卡的项目实践
May 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
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
jquery垂直公告滚动实现代码
2013/12/08 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
JavaScript中实现单体模式分享
2015/01/29 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
python SocketServer源码深入解读
2019/09/17 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
有针对性的求职自荐信
2013/11/14 职场文书
经典禁毒标语
2014/06/16 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
写给老婆的保证书
2015/02/27 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang