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背景下的@font face规则
May 04 HTML / CSS
纯CSS3单页切换导航菜单界面设计的简单实现
Aug 16 HTML / CSS
浅谈CSS3中display属性的Flex布局的方法
Aug 14 HTML / CSS
详解H5本地储存Web Storage
Jul 03 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
Nov 02 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
HTML5中drawImage用法分析
Dec 01 HTML / CSS
html5中的一些标签学习(心得)
Oct 18 HTML / CSS
Canvas与图片压缩的示例代码
Nov 28 HTML / CSS
浅谈HTML5 Web Worker的使用
Jan 05 HTML / CSS
使用HTML5加载音频和视频的实现代码
Nov 30 HTML / CSS
HTML通过表单实现酒店筛选功能
May 18 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 防注入函数(格式化数据)
2011/08/08 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
python switch 实现多分支选择功能
2020/12/21 Python
python asyncio 协程库的使用
2021/01/21 Python
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
个人求职信范例
2014/01/29 职场文书
董事长秘书职责
2014/01/31 职场文书
2015年考研复习计划
2015/01/19 职场文书
总经理检讨书范文
2015/02/16 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
PHP遍历数组的6种方式总结
2021/11/17 PHP