文字融合效果

229 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情

前言:

最近一直在学高数应付考试,是真的难,但是也一直没有忘记温习js,最近想了想想起了@蜡笔小新_这个大佬的css还是很好玩的,所以我也来试试css3。哪里不好望大家批评指正,最后源码附上。

SDGIF_Rusult_1.gif

完事开始与html结构

	<body>
		<div>
		  <div class="container">
		    <h1>我是菜小白,期待您的关注</h1>
		  </div>
		</div>
	</body>

css代码如下:

先给body与html的width,height,这些没有什么讲的

		  html,
		  body {
		    height: 100%;
		    width: 100%;
		    background-color: black;
		  }

再一个就是给咱们的父级盒子设置显示隐藏,大小,定位,颜色等属性,这些也没有什么讲的.

.container {
		    width: 100%;
		    height: 100%;
		    position: relative;
		    padding: 4em;
		    filter: contrast(20);
		    background-color: black;
		    overflow: hidden;
		  }

最后就是我们的h1标签

animation循环播放infinitealternate 动画轮流反向播放ease-in-out相对于匀速
还有就是规定完成动画所花费的时间,该属性必须规定,否则动画时长为0,无法播放
在此的color属性可以是融合的时候的颜色,这里我设置的是青蓝色,比较稍微科幻点,
transform: translate3d(-50%, -50%, 0)括号设置的分别是x ,y,z轴的大小,其他的标签就不必说了

h1 {
		    height: 100%;
		    font-family: Righteous;
		    color: #18a0dc;
		    font-size: 4rem;
		    text-transform: uppercase;
		    line-height: 1;
		    animation: caixiaobai 3s infinite alternate ease-in-out;
		    display: block;
		    position: absolute;
		    left: 50%;
		    top: 50%;
		    transform: translate3d(-50%, -50%, 0);
		    letter-spacing: -2.2rem;
		  }

接下来是动画@keyframes

在此给说一下属性letter-spacing属性增加或减少字符间的空白(字符间距)。

该属性定义了在文本字符框之间插入多少空间。由于字符字形通常比其字符框要窄,指定长度值时,会调整字母之间通常的间隔。因此,normal 就相当于值为 0。

filter 属性定义元素(通常是)的视觉效果(如模糊和饱和度)。

思想:

在0%时我们让字间距与模糊度达到最小

50%使清晰度加大

100%字间距与清晰度最大最后这个color属性是设置字体开始缩小时的颜色

		
		  @keyframes caixiaobai {
		    0% {
		      letter-spacing: -2.4rem;
		      filter: blur(.3rem);
		    }
		
		    50% {
		      filter: blur(.5rem);
		    }
		
		    100% {
		      letter-spacing:.5rem;
		      filter: blur(0rem);
		      color: #fff;
		    }
		  }