<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Google Logo Animation</title>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f1f1f1;
margin: 0;
overflow: hidden;
}
.logo-container {
display: flex;
font-size: 60px;
font-weight: bold;
font-family: Arial, sans-serif;
margin: 0 auto; /* 使容器在水平方向上居中 */
}
.letter {
opacity: 1; /* 字母始终显示 */
transform: translateY(0);
}
.letter.G { color: #4285F4; }
.letter.o1 { color: #DB4437; }
.letter.o2 { color: #F4B400; }
.letter.g { color: #4285F4; }
.letter.l { color: #0F9D58; }
.letter.e { color: #DB4437; }
@keyframes jump {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-20px);
}
}
</style>
</head>
<body>
<div class="logo-container">
<div class="letter G">G</div>
<div class="letter o1">o</div>
<div class="letter o2">o</div>
<div class="letter g">g</div>
<div class="letter l">l</div>
<div class="letter e">e</div>
</div>
<script>
const letters = document.querySelectorAll('.letter');
function animateLetters() {
letters.forEach((letter, index) => {
setTimeout(() => {
letter.style.animation = 'jump 0.8s ease-in-out'; // 应用跳跃动画
}, index * 800); // 每个字母的间隔时间(0.8s)
});
// 最后一个字母e跳动完成后,等待两秒再重新开始
setTimeout(() => {
letters.forEach(letter => {
letter.style.animation = 'none'; // 停止动画
});
// 两秒后重新开始动画
setTimeout(() => {
animateLetters(); // 重新开始动画
}, 2000); // 两秒显示时间
}, letters.length * 800); // 所有字母跳动完成的时间
}
// 初始动画
animateLetters();
</script>
</body>
</html>
index.html
style.css
index.js