CSS元素动画篇:基于页面位置的变换动画

基于页面位置的变换动画

前言

CSS元素动画一般分为两种:一种是元素基于当前位置的变换动画,通过不明显的位移、缩放等方式,实现动画效果,如弹跳、闪烁、抖动等;另一种是元素基于页面位置的变换动画,通过位移、旋转等方式,实现动画效果,如飞入/飞出等。

在之前的文章中,介绍了 基于当前位置的变换动画 ,本篇文章将介绍基于页面位置的变换动画。

基于页面位置的变换动画

基于页面位置的变换动画:主要是通过元素从页面不同的位置移动到指定位置,并添加旋转、缩放等方式实现动画效果,其效果和基于当前位置的变换动画大同小异,本文主要介绍从上、下、左、右四个不同的方式实现基于页面位置的变换动画。

从上往下移动

从上往下移动:通过translateY设置动画,初始帧设为一个较大的负值,移动到当前位置,其效果图如下所示:

效果预览

代码实现

html 复制代码
<style>
  @keyframes topToBottom {
    0% {
      opacity: 0;
      transform: translateY(-1200px);
    }
    80% {
      opacity: 0.7;
      transform: translateY(0px);
    }
    100% {
      opacity: 1;
      transform: translateY(0px);
    }
  }
  .top-to-down {
    padding: 100px 200px;
    display: inline-block;
    height: 100px;
    font-size: 100px;
    animation: topToBottom 1.5s ease-in-out 1;
  }
</style>

<body>
  <span class="top-to-down">从上往下移动</span>
</body>

从下往上移动

从下往上移动:通过translateY设置动画,初始帧设为一个较大的正值,移动到当前位置,其效果图如下所示:

效果预览

代码实现

html 复制代码
<style>
  @keyframes downToTop {
    0% {
      opacity: 0;
      transform: translateY(1200px);
    }
    80% {
      opacity: 0.7;
      transform: translateY(0px);
    }
    100% {
      opacity: 1;
      transform: translateY(0px);
    }
  }
  .down-to-top {
    padding: 100px 200px;
    display: inline-block;
    height: 100px;
    font-size: 100px;
    animation: downToTop 1.5s ease-in-out 1;
  }
</style>

<body>
  <span class="down-to-top">从下往上移动</span>
</body>

从左往右移动

从左往右移动:通过translateX设置动画,初始帧设为一个较大的负值,移动到当前位置,其效果图如下所示:

效果预览

代码实现

html 复制代码
<style>
  @keyframes leftToRight {
    0% {
      opacity: 0;
      transform: translateX(-1200px);
    }
    80% {
      opacity: 0.7;
      transform: translateX(0px);
    }
    100% {
      opacity: 1;
      transform: translateX(0px);
    }
  }
  .left-to-right {
    padding: 100px 200px;
    display: inline-block;
    height: 100px;
    font-size: 100px;
    animation: leftToRight 1.5s ease-in-out 1;
  }
</style>

<body>
  <span class="left-to-right">从左往右移动</span>
</body>

从右往左移动

从右往左移动:通过translateX设置动画,初始帧设为一个较大的正值,移动到当前位置,其效果图如下所示:

效果预览

代码实现

html 复制代码
<style>
  @keyframes rightToLeft {
    0% {
      opacity: 0;
      transform: translateX(1200px);
    }
    80% {
      opacity: 0.7;
      transform: translateX(0px);
    }
    100% {
      opacity: 1;
      transform: translateX(0px);
    }
  }
  .right-to-left {
    padding: 100px 200px;
    display: inline-block;
    height: 100px;
    font-size: 100px;
    animation: rightToLeft 2s ease-in-out 1;
  }
</style>

<body>
  <span class="right-to-left">从右往左移动</span>
</body>

结语

本文主要简单介绍了几种常见的基于页面位置的元素动画,你还知道哪些基于页面位置的元素动画?欢迎在评论区留言分享!

相关推荐
Highcharts.js2 小时前
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
开发语言·前端·javascript·信息可视化·highcharts·图表开发
LaughingZhu8 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫8 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
小鹏linux9 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
前端若水10 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger10 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)10 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态10 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态
BY组态11 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·物联网·iot·web组态·组态
SoaringHeart11 小时前
Flutter进阶:OverlayEntry 插入图层管理器 NOverlayZIndexManager
前端·flutter