GSAP,全称GreenSock Animation Platform,是一个高性能的JavaScript动画库。它可以让你在网页上轻松创建高效、流畅的动画效果。GSAP的优势在于它的简洁性、灵活性和强大的功能,可以兼容各种浏览器,并且有丰富的文档和示例。
https://gsap.com/
我们将实现一个简单的网页动画效果,包括图片的缩放、文本的淡入淡出和按钮的滑动效果。下面是我们最终的效果视频展示:
通过本案例,你将能学到以下内容:
fromTo
方法的用法及其在动画中的应用。stagger
属性为一组元素创建错开的动画效果。这个案例的主要功能包括:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>Text Animations</title>
<link rel="preconnect" href="https://fonts.googleapis.com"/>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<nav>
<h1 class="logo">Frontend-GSAP</h1>
</nav>
<div class="hero-section">
<img src="hero.jpg" class="hero-img" alt="">
<div class="cta">
<div class="cta-text">
<h2><span class="cta1">One</span></h2>
<h2><span class="cta2">stop</span></h2>
<h2><span class="cta3">shop</span></h2>
</div>
<div class="cta-text">
<h2><span class="cta4">to</span></h2>
<h2><span class="cta5">perfect</span></h2>
<h2><span class="cta6">skin.</span></h2>
</div>
<button class="cta-btn">Explore</button>
</div>
</div>
<script src="gsap.min.js"></script>
<script src="app.js"></script>
</body>
</html>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: "Poppins", sans-serif;
}
nav {
min-height: 10vh;
display: flex;
justify-content: center;
align-items: center;
}
.logo {
font-size: 1rem;
color: rgb(33, 33, 33);
overflow: hidden;
}
.hero-section {
height: 80vh;
margin: 0 10%;
}
.hero-section img {
width: 100%;
height: 100%;
object-fit: cover;
}
.cta {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: white;
display: flex;
flex-direction: column;
align-items: center;
}
.cta-text {
display: flex;
font-size: 2rem;
}
.cta-text h2 {
overflow: hidden;
}
.cta-text span {
padding: 0 0.4rem;
display: block;
text-shadow: rgba(0,0,0,0.4) 0 0 20px;
}
.cta-btn{
margin: 1rem;
padding: 0.5rem 2rem;
background: white;
border-radius: 0.3rem;
color: rgba(33,33,33);
border: none;
font-size: 0.7rem;
}
接下来我们将详细解析JS部分的代码,并对相关的GSAP API进行详细解释。
const tl = gsap.timeline({
defaults: { duration: 0.75, ease: "Power3.easeOut" },
});
这里我们创建了一个GSAP的时间线(timeline)实例,tl
。timeline
允许我们将多个动画串联在一起,按顺序或并行播放。defaults
属性设置了所有动画的默认参数,duration
设为0.75秒,ease
设为“Power3.easeOut”,即动画以缓慢的速度开始,然后逐渐加速并缓慢结束。