神族九帝's blog 神族九帝's blog
首页
网盘 (opens new window)
线报 (opens new window)
商城 (opens new window)
  • 复习指导
  • HTML
  • CSS
  • JavaScript
  • 设计模式
  • 浏览器
  • 手写系列
  • Vue
  • Webpack
  • Http
  • 前端优化
  • 项目
  • 面试真题
  • 算法
  • 精选文章
  • 八股文
  • 前端工程化
  • 基础篇
  • 进阶篇
  • 高级篇
  • 计算机基础
  • 高频考点
  • 精简题
  • 综合问题
  • 复习题
  • vue
  • vue2源码学习
  • 剖析vuejs内部运行机制
  • TypeScript 入门实战笔记
  • vue3源码学习
  • 2周刷完100道前端优质面试真题
  • npm发包
  • 重学node
  • 前端性能优化方法与实战
  • webpack原理与实战
  • webGl
  • 前端优化
  • Web3
  • 更多
  • 网站
  • 资源
  • Vue资源
  • 收藏的一些API
  • 未来要做的事
  • 宝塔面板+青龙面板
  • 安卓手机当服务器使用
  • 京东自动评价代码
  • 搭建x-ui免流服务器(已失效)
  • 海外联盟
  • 好玩的docker
  • 导航
GitHub (opens new window)

神族九帝,永不言弃

首页
网盘 (opens new window)
线报 (opens new window)
商城 (opens new window)
  • 复习指导
  • HTML
  • CSS
  • JavaScript
  • 设计模式
  • 浏览器
  • 手写系列
  • Vue
  • Webpack
  • Http
  • 前端优化
  • 项目
  • 面试真题
  • 算法
  • 精选文章
  • 八股文
  • 前端工程化
  • 基础篇
  • 进阶篇
  • 高级篇
  • 计算机基础
  • 高频考点
  • 精简题
  • 综合问题
  • 复习题
  • vue
  • vue2源码学习
  • 剖析vuejs内部运行机制
  • TypeScript 入门实战笔记
  • vue3源码学习
  • 2周刷完100道前端优质面试真题
  • npm发包
  • 重学node
  • 前端性能优化方法与实战
  • webpack原理与实战
  • webGl
  • 前端优化
  • Web3
  • 更多
  • 网站
  • 资源
  • Vue资源
  • 收藏的一些API
  • 未来要做的事
  • 宝塔面板+青龙面板
  • 安卓手机当服务器使用
  • 京东自动评价代码
  • 搭建x-ui免流服务器(已失效)
  • 海外联盟
  • 好玩的docker
  • 导航
GitHub (opens new window)
  • 复习指导

  • HTML

  • CSS

    • 思维导图
    • CSS教程和技巧收藏
    • flex布局案例-骰子
    • flex布局案例-圣杯布局
    • flex布局案例-网格布局
    • flex布局案例-输入框布局
    • CSS3之transition过渡
    • CSS3之animation动画
      • CSS层叠等级
      • transform,transition和animation的区别
      • 「布局技巧」图片未加载前自动撑开元素高度
      • 文字在一行或两行时超出显示省略号
      • 如何根据系统主题自动响应CSS深色模式
      • 常用动画库
    • JavaScript

    • 设计模式

    • 浏览器

    • 手写系列

    • Vue

    • Webpack

    • Http

    • 前端优化

    • 项目

    • 面试真题

    • 算法

    • 精选文章

    • 八股文

    • 前端工程化

    • 面试题
    • CSS
    wu529778790
    2021-06-05

    CSS3之animation动画

    可用F12开发者工具查看元素及样式,可打开 codepen 在线编辑代码。

    <html>
      <div class="animationBox">
        <div class="rotate">旋转动画1</div>
        <div class="play">
          <div class="img">旋转动画2</div>
          <span><p class="p2"></p></span>
          <span><p></p></span>
          <span><p></p></span>
          <span><p class="p2"></p></span>
        </div>
        <div class="elasticity">弹性动画</div>
        <div class="elasticity2">曲线弹性</div>
      </div>
    </html>
    
    <style>
      .animationBox {
        overflow: hidden;
      }
      .animationBox > div {
        width: 100px;
        height: 100px;
        background: #eee;
        border-radius: 50%;
        text-align: center;
        line-height: 100px;
        margin: 30px;
        float: left;
      }
      .rotate {
        animation: rotate 5s linear infinite;
      }
      .rotate:hover {
        animation-play-state: paused;
      }
      @keyframes rotate {
        0% {
          transform: rotate(0);
        }
        100% {
          transform: rotate(360deg);
        }
      }
      .animationBox > .play {
        position: relative;
        margin: 50px 30px;
        background: none;
      }
      .play .img {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100px;
        height: 100px;
        background: #eee;
        border-radius: 50%;
    
        animation: rotate 5s linear infinite;
      }
      .play span {
        position: absolute;
        top: 1px;
        left: 1px;
        z-index: 0;
        display: block;
        width: 96px;
        height: 96px;
        border: 1px solid #999;
        border-radius: 50%;
      }
      .play span p {
        display: block;
        width: 4px;
        height: 4px;
        background: #000;
        margin: -2px 0 0 50%;
        border-radius: 50%;
        opacity: 0.5;
      }
      .play span .p2 {
        margin: 50% 0 0 -2px;
      }
      .play span {
        animation: wave 5s linear infinite;
      }
      .play > span:nth-child(3) {
        /* 延迟时间 */
        animation-delay: 1s;
      }
      .play > span:nth-child(4) {
        animation-delay: 2.2s;
      }
      .play > span:nth-child(5) {
        animation-delay: 3.8s;
      }
    
      @keyframes wave {
        0% {
          transform: scale(1) rotate(360deg);
          opacity: 0.8;
        }
        100% {
          transform: scale(1.8) rotate(0deg);
          opacity: 0;
        }
      }
    
      .elasticity {
        /* 参数说明
          动画名称 花费时间 贝塞尔曲线 延迟开始时间 播放次数n|infinite  是否反向播放动画
        */
        animation: elasticity 1s linear 2s infinite;
      }
    
      @keyframes elasticity {
        0% {
          transform: scale(0);
        }
        60% {
          transform: scale(1.1);
        }
        90% {
          transform: scale(1);
        }
      }
    
      .elasticity2 {
        /**
        贝塞尔曲线 cubic-bezier(x1,y1,x2,y2)
    
        通过调整贝塞尔曲线可以设置出多种动画效果,比如反弹效果等
        X轴的范围是0~1,Y轴的取值没有规定,但是也不宜过大
        直线:linear,即cubic-bezier(0,0,1,1)
    
        贝塞尔曲线在线工具:https://cubic-bezier.com/#.17,.67,.83,.67
          */
        animation: elasticity2 1s cubic-bezier(0.39, 0.62, 0.74, 1.39) 2s infinite;
      }
      @keyframes elasticity2 {
        0% {
          transform: scale(0);
        }
        90% {
          transform: scale(1);
        }
      }
    </style>
    

    # 贝塞尔曲线 cubic-bezier(x1,y1,x2,y2)

    通过调整贝塞尔曲线可以设置出多种动画效果,比如反弹效果等 X 轴的范围是 0~1,Y 轴的取值没有规定,但是也不宜过大。 如:直线 linear,即 cubic-bezier(0,0,1,1)

    贝塞尔曲线在线工具:https://cubic-bezier.com/#.17,.67,.83,.67 (opens new window)

    参考:https://www.w3school.com.cn/css3/index.asp (opens new window)

    编辑 (opens new window)
    上次更新: 2021/08/30, 22:22:05
    CSS3之transition过渡
    CSS层叠等级

    ← CSS3之transition过渡 CSS层叠等级→

    最近更新
    01
    好玩的docker
    07-04
    02
    我的第一个NFT
    07-03
    03
    海外迅雷
    06-01
    更多文章>
    Power by vuepress | Copyright © 2015-2023 神族九帝
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×