温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用css制作有趣的文字摆动动画特效

发布时间:2021-08-30 16:01:04 来源:亿速云 阅读:199 作者:小新 栏目:web开发

小编给大家分享一下如何利用css制作有趣的文字摆动动画特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

我们先来看看效果图:

如何利用css制作有趣的文字摆动动画特效

下面我们来研究一下是怎么实现这个效果的:

首先创建HTML部分,定义一个包含文本的h2大标题

<h2>Hello World !</h2>

如何利用css制作有趣的文字摆动动画特效

然后开始定义css样式来进行修饰:

背景颜色

body {
  background: black;
}

h2标题文本样式,利用text-stroke属性添加白色描边

h2 {
text-align: center;
margin: 200px auto;
font-size: 4.5rem;
font-family: arial;
font-weight: 900;
color: transparent;
overflow: hidden;
-webkit-text-stroke: 4px white; 
}

如何利用css制作有趣的文字摆动动画特效

h2标题文本样式,利用background系列属性和linear-gradient()添加文本背景

background: linear-gradient(45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(-45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(90deg, crimson 30%, transparent 30%, transparent 70%, crimson 70%)red;
background-size: 20px 20px, 20px 20px, 1px 1px;
background-position: 0 0, 0 0, 0 0;
-webkit-background-clip: text;

如何利用css制作有趣的文字摆动动画特效

h2标题文本样式,利用filter属性添加边框阴影

filter: drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 2px crimson);

如何利用css制作有趣的文字摆动动画特效

接着是添加动画效果,让文字摆动起来,且文字背景也动起来(实现移位效果):

给h2标签绑定animation动画,设置两个动画bg-shifth和swing:bg-shifth动画控制文字背景,swing动画控制文字摆动

animation: bg-shift 1s ease-in-out infinite alternate-reverse, swing 2s ease-in-out infinite;

使用两个@keyframes规则,给两个动画设置每一帧的动作即可。

@keyframes bg-shift {
  from {
	background-position: 0 50px;
  }
}

@keyframes swing {
  0% {
	transform-origin: top;
	transform: perspective(550px)rotatex(55deg);
  }

  50% {
	transform: perspective(550px)rotatex(-55deg);
  }

  100% {
	transform-origin: top;
	transform: perspective(550px)rotatex(55deg);

  }
}

如何利用css制作有趣的文字摆动动画特效

最后,最终效果在摆动时,有高光效果,我们来实现一下:

h2::before {
  content: "Hello World !";
  position: absolute;
  background: linear-gradient(transparent 30%, white, transparent 70%);
  -webkit-background-clip: text;
  -webkit-text-stroke: 2px red;
}

如何利用css制作有趣的文字摆动动画特效

给它添加一个动画效果bg-shift2,让它随着文字摆动变化位置:

animation: bg-shift2 2s ease-in-out infinite alternate-reverse;

使用@keyframes规则,给动画设置每一帧的动作即可。

@keyframes bg-shift2 {
  0% {
	background-position: 0 50px;
  }

  50% {

	background-position: 0 -50px;

  }

  100% {
	background-position: 0 50px;
  }
}

如何利用css制作有趣的文字摆动动画特效

下面给出完整代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<style>
			body {
				background: black;
				/* overflow: hidden; */
			}

			h2 {
				text-align: center;
				margin: 200px auto;
				font-size: 4.5rem;
				font-family: arial;
				font-weight: 900;
				color: transparent;
				overflow: hidden;
				-webkit-text-stroke: 4px white;
				background: linear-gradient(45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(-45deg, black 30%, transparent 30%, transparent 70%, black 70%), linear-gradient(90deg, crimson 30%, transparent 30%, transparent 70%, crimson 70%)red;
				background-size: 20px 20px, 20px 20px, 1px 1px;
				background-position: 0 0, 0 0, 0 0;
				-webkit-background-clip: text;
				filter: drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 1px black)drop-shadow(0 0 2px crimson);
				animation: bg-shift 1s ease-in-out infinite alternate-reverse, swing 2s ease-in-out infinite;
			}

			@keyframes bg-shift {
				from {
					background-position: 0 50px;
				}
			}

			@keyframes swing {
				0% {
					transform-origin: top;
					transform: perspective(550px)rotatex(55deg);
				}

				50% {
					transform: perspective(550px)rotatex(-55deg);
				}

				100% {
					transform-origin: top;
					transform: perspective(550px)rotatex(55deg);

				}
			}

			h2::before {
				content: "Hello World !";
				position: absolute;
				background: linear-gradient(transparent 30%, white, transparent 70%);
				-webkit-background-clip: text;
				-webkit-text-stroke: 2px red;
				animation: bg-shift2 2s ease-in-out infinite alternate-reverse;
			}

			@keyframes bg-shift2 {
				0% {
					background-position: 0 50px;
				}

				50% {

					background-position: 0 -50px;

				}

				100% {
					background-position: 0 50px;
				}
			}
		</style>
	</head>
	<body>
		<h2>Hello World !</h2>
	</body>
</html>

以上是“如何利用css制作有趣的文字摆动动画特效”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css
AI