You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用CSS实现网页加载时的放大功能及Logo特定动画效果(星球大战主题校园项目)

实现网页加载时Logo的放大+固定效果(星球大战主题)

先回答第一个问题:网页打开时的放大功能怎么实现?

本质上是用CSS关键帧动画(@keyframes)定义元素的缩放变化,再通过animation属性把动画绑定到目标元素上,页面加载时会自动触发。核心是控制元素的transform: scale()属性,配合动画时长和过渡曲线,就能实现“快速放大”的视觉效果。

针对你的星球大战项目需求,完整代码实现

下面是为你定制的代码,包含放大展示、移动固定的完整逻辑,还加入了星球大战风格的基础样式:

HTML 结构

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>星球大战校园项目</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <!-- Logo容器 -->
  <div class="logo-wrapper">
    <img src="star-wars-logo.png" alt="星球大战Logo" class="sw-logo">
  </div>

  <!-- 页面其他内容示例 -->
  <div class="content">
    <h1>欢迎来到星球大战校园项目</h1>
    <!-- 这里放置你的页面内容 -->
  </div>
</body>
</html>

CSS 样式(styles.css)

/* 基础全局样式,贴合星球大战深色风格 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background-color: #000;
  color: #feda4a; /* 星球大战经典黄色文字 */
  font-family: Arial, sans-serif;
  min-height: 200vh; /* 给页面加足够高度方便测试滚动 */
}

/* Logo初始状态:屏幕中央 */
.logo-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.sw-logo {
  width: 450px; /* 根据你的Logo尺寸调整 */
  /* 绑定动画:名称、时长、过渡曲线、保持最终状态 */
  animation: logoSequence 5s cubic-bezier(0.3, 0.9, 0.2, 1) forwards;
}

/* 定义完整的Logo动画序列 */
@keyframes logoSequence {
  /* 初始帧:极小、透明,准备入场 */
  0% {
    transform: scale(0.05) translate(-50%, -50%);
    opacity: 0;
    position: absolute;
  }
  /* 80%帧:放大到原始大小,保持居中展示1秒左右 */
  80% {
    transform: scale(1) translate(-50%, -50%);
    opacity: 1;
    position: absolute;
    top: 50%;
    left: 50%;
  }
  /* 最终帧:缩小到目标尺寸,移动到左上角并固定 */
  100% {
    transform: scale(0.4);
    opacity: 1;
    position: fixed;
    top: 15px;
    left: 15px;
  }
}

/* 页面内容样式示例 */
.content {
  padding: 4rem 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.content h1 {
  font-size: 3rem;
  margin-bottom: 2rem;
}

代码细节解释

  1. 动画时序设计

    • 整个动画时长5秒,前4秒(80%进度)完成从极小到全屏展示的放大过程,用cubic-bezier曲线让放大速度更快更有冲击力;
    • 最后1秒完成从屏幕中央到左上角的移动+缩小,并切换为position: fixed,确保滚动页面时Logo始终固定在角落。
  2. 星球大战风格优化

    • 背景用纯黑色,文字用经典的黄色(#feda4a),贴合原IP视觉;
    • 给body设置足够高度,方便测试滚动时Logo的固定效果。
  3. 可调整参数

    • 修改scale()的值可以调整放大/缩小的比例;
    • 调整top/left可以改变固定后Logo的位置;
    • 替换cubic-bezier()的参数可以自定义动画的快慢节奏;
    • 如果是文字Logo,可以引入星球大战专属字体(比如Star Jedi),进一步增强主题感。

内容的提问来源于stack exchange,提问作者B code

火山引擎 最新活动