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 圆角效果
Jul 15 HTML / CSS
CSS3属性background-size使用指南
Dec 09 HTML / CSS
CSS3中currentColor关键字的妙用
Feb 27 HTML / CSS
用html5实现语音搜索框的方法
Mar 18 HTML / CSS
HTML5地理定位实例
Oct 15 HTML / CSS
极简的HTML5模版
Jul 09 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
Mar 11 HTML / CSS
HTML5新特性之type=file文件上传功能
Feb 02 HTML / CSS
html5 canvas手势解锁源码分享
Jan 07 HTML / CSS
HTML5 SEO优化的一些建议
Aug 27 HTML / CSS
canvas 绘图时位置偏离的问题解决
Sep 16 HTML / CSS
CSS使用SVG实现动态分布的圆环发散路径动画
Dec 24 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简单封装了一些常用JS操作
2007/02/25 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
代码生成器 document.write()
2007/04/15 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
jquery easyui使用心得
2014/07/07 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
跟老齐学Python之类的细节
2014/10/13 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python分布式计算dispy的使用详解
2019/12/22 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
Python 中如何写注释
2020/08/28 Python
python 实现批量图片识别并翻译
2020/11/02 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
户外亲子活动策划方案
2014/02/07 职场文书
《胡杨》教学反思
2014/02/16 职场文书
实习单位评语
2014/04/26 职场文书
倡议书范文格式
2014/05/12 职场文书
《失物招领》教学反思
2016/02/20 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
Redis 常见使用场景
2021/08/30 Redis
golang中的struct操作
2021/11/11 Golang