css 动画

transform的3D动画

3D形变函数会创建一个合成层来启用GPU硬件加速

translate

      transform: translateY(100px);
      transform: translateX(100px);
      transform: translateZ(100px);
      transform: translate3d(100px,100px,100px); // x,y,z的简写

在这里插入图片描述

rotate

deg弧度

 transform: rotateX(-40deg);

在这里插入图片描述
在这里插入图片描述

   transform: rotateY(40deg);

在这里插入图片描述

3D透视 perspective

一般是给父元素设置的,如果是子元素或单个子元素,可以使用函数perspective()。
设置透视后,距离越远元素越小,距离越小,元素越大。
设置透视后对z轴的操作才有效。
在这里插入图片描述

 .box {
        width: 100px;
        height: 100px;
        background-color: rebeccapurple;
        transform: perspective(300px) rotateY(-40deg);
      }

scale

  // 设置百分比不会生效
   transform: scaleY(1.5);
   transform: scaleX(1.5);
   transform: scaleZ(1.5);

3D空间 transform-style

设置子元素是定位在3D空间的还是展示在2D平面的
两个值:
flat:位于平面中,
preserve-3d:位于3D空间中。

 <style>
      .box {
        width: 100px;
        height: 100px;
        perspective: 100px;
        background-color: aqua;
        transform-style: preserve-3d;
      }
      .item {
        width: 100px;
        height: 100px;
        background-color: rgb(200, 196, 204);
        transform: rotateX(40deg) translateX(10px);
      }
    </style>
    <div class="box">
      <div class="item"></div>
    </div>

在这里插入图片描述

画一个正方体

例子:
1.

 <style>
      .box {
        position: relative;
        width: 100px;
        height: 100px;
        background-color: aqua;
        transform-style: preserve-3d;
        transform: rotateX(-33deg) rotateY(45deg); //正方体的测试图
      }
      .item {
        position: absolute;
        top: 0;
        left: 0;
        width: 100px;
        height: 100px;
        background-color: rgb(200, 196, 204);
      }
    </style>
     <div class="box">
      <div class="item">1</div>
      <div class="item">2</div>
      <div class="item">3</div>
      <div class="item">4</div>
      <div class="item">5</div>
      <div class="item">6</div>
    </div>

在这里插入图片描述
2.
在这里插入图片描述

  .top {
        background-color: rgb(41, 38, 38);
        transform: rotateX(90deg);
      }

在这里插入图片描述

 .top {
        background-color: rgb(41, 38, 38);
        transform: rotateX(90deg) translateZ(50px);
      }

在这里插入图片描述

 .top {
        background-color: rgb(41, 38, 38);
        transform: rotateX(90deg) translateZ(50px);
      }
      .bottom {
        background-color: rgb(73, 39, 39);
        transform: rotateX(-90deg) translateZ(50px);
      }

在这里插入图片描述

3.`

 .right {
        background-color: rgb(45, 39, 73);
        transform: rotateY(90deg) translateZ(50px);
      }

在这里插入图片描述

   .left {
        background-color: rgb(45, 39, 73);
        transform: rotateY(-90deg) translateZ(50px);
      }
      .right {
        background-color: rgb(45, 39, 73);
        transform: rotateY(90deg) translateZ(50px);
      }

在这里插入图片描述

 .back {
        background-color: rgb(23, 23, 23);
        transform: rotateY(-180deg) translateZ(50px);
      }

在这里插入图片描述

 <style>
      .box {
        position: relative;
        width: 100px;
        height: 100px;
        margin: 200px;

        transform-style: preserve-3d;
        transform: rotateX(-33deg) rotateY(45deg);
      }
      .item {
        position: absolute;
        top: 0;
        left: 0;
        width: 100px;
        height: 100px;
      }

      .top {
        background-color: rgb(41, 38, 38);
        transform: rotateX(90deg) translateZ(50px);
      }
      .bottom {
        background-color: rgb(73, 39, 39);
        transform: rotateX(-90deg) translateZ(50px);
      }
      .left {
        background-color: rgb(45, 39, 73);
        transform: rotateY(-90deg) translateZ(50px);
      }
      .right {
        background-color: rgb(38, 100, 85);
        transform: rotateY(90deg) translateZ(50px);
      }
      .font {
        background-color: rgb(73, 73, 39);
        transform: rotateY(0deg) translateZ(50px);
      }
      .back {
        background-color: rgb(23, 23, 23);
        transform: rotateY(-180deg) translateZ(50px);
      }
    </style>
     <div class="box">
      <div class="item top">1</div>
      <div class="item bottom">2</div>
      <div class="item left">3</div>
      <div class="item right">4</div>
      <div class="item font">5</div>
      <div class="item back">6</div>
    </div>

在这里插入图片描述

3D背面可见性- backface-visibility

backface-visibility 设置后,当元素的背面是否可见,元素背向观察者时是否可见。
visible:背向时可见。
hidden:背向时不可见。

 <style>
    .box {
      width: 200px;
      height: 200px;
      margin: 200px;

      background-color: antiquewhite;
      padding-inline-end: 200px;
    }
    .item {
      width: 100px;
      height: 100px;
      background-color: rgb(60, 67, 95);
      transform: rotateY(180deg);
      animation: rote 6s linear infinite;
      backface-visibility: hidden;
    }
    @keyframes rote {
      0% {
        transform: rotateY(0deg);
      }
      100% {
        transform: rotateY(360deg);
      }
    }
  </style>
</head>
<body>
  <div class="box">
    <div class="item"></div>
  </div>
</body>

请添加图片描述

webpack logo的例子

  <style>
      .box {
        margin: 200px;
        position: relative;
      }
      .box-item {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 50px;
        height: 50px;
        margin: -25px 0 0 -25px;
        transform-style: preserve-3d;
        transform: rotateX(-33deg) rotateY(45deg);
        animation: items 6s ease-in-out infinite;
      }
      .item {
        width: 50px;
        height: 50px;
        position: absolute;
        top: 0;
        left: 0;
        border: 1px solid white;
      }

      @keyframes items {
        0% {
          transform: rotateX(-33deg) rotateY(45deg);
        }
        50%,
        100% {
          transform: rotateX(-33deg) rotateY(405deg);
        }
      }
      .top {
        background-color: rgba(168, 220, 245, 0.5);
        transform: rotateX(90deg) translateZ(25px);
      }
      .bottom {
        background-color: rgba(168, 220, 245, 0.5);
        transform: rotateX(-90deg) translateZ(25px);
      }
      .left {
        background-color: rgba(168, 220, 245, 0.5);
        transform: rotateY(-90deg) translateZ(25px);
      }
      .right {
        background-color: rgba(168, 220, 245, 0.5);
        transform: rotateY(90deg) translateZ(25px);
      }
      .font {
        background-color: rgba(168, 220, 245, 0.5);
        transform: rotateY(0deg) translateZ(25px);
      }
      .back {
        background-color: rgba(168, 220, 245, 0.5);
        transform: rotateY(-180deg) translateZ(25px);
      }
      .box-container {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 100px;
        height: 100px;
        margin: -50px 0 0 -50px;
        transform-style: preserve-3d;
        transform: rotateX(-33deg) rotateY(45deg);
        animation: containers 6s ease-in-out infinite;
      }
      .container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100px;
        height: 100px;
        border: 1px solid white;
      }
      @keyframes containers {
        0% {
          transform: rotateX(-33deg) rotateY(45deg);
        }
        50%,
        100% {
          transform: rotateX(-33deg) rotateY(-315deg);
        }
      }
      .container-top {
        background-color: rgba(141, 214, 249, 0.5);
        transform: rotateX(90deg) translateZ(50px);
      }
      .container-bottom {
        background-color: rgba(141, 214, 249, 0.5);
        transform: rotateX(-90deg) translateZ(50px);
      }
      .container-left {
        background-color: rgba(141, 214, 249, 0.5);
        transform: rotateY(-90deg) translateZ(50px);
      }
      .container-right {
        background-color: rgba(141, 214, 249, 0.5);
        transform: rotateY(90deg) translateZ(50px);
      }
      .container-font {
        background-color: rgba(141, 214, 249, 0.5);
        transform: rotateY(0deg) translateZ(50px);
      }
      .container-back {
        background-color: rgba(141, 214, 249, 0.5);
        transform: rotateY(-180deg) translateZ(50px);
      }
    </style>
  </head>
  <body>
    <div class="box">
      <div class="box-item">
        <div class="item top"></div>
        <div class="item bottom"></div>
        <div class="item left"></div>
        <div class="item right"></div>
        <div class="item font"></div>
        <div class="item back"></div>
      </div>
      <div class="box-container">
        <div class="container container-top"></div>
        <div class="container container-bottom"></div>
        <div class="container container-left"></div>
        <div class="container container-right"></div>
        <div class="container container-font"></div>
        <div class="container container-back"></div>
      </div>
    </div>
  </body>

请添加图片描述

<style>
      .box {
        margin: 200px;
        position: relative;
        width: 500px;
        height: 500px;
        background-image: url("1.png");
        background-position: center;
        background-size: contain;
      }
      .box1 {
        position: absolute;
        top: 170px;
        left: 43px;
        animation: b1 3s ease-in infinite;
      }
      @keyframes b1 {
        0% {
          opacity: 1;
          transform: translateY(0px);
        }
        50%,
        100% {
          opacity: 0;
          transform: translateY(-50px);
        }
      }
      .box2 {
        position: absolute;
        top: 267px;
        left: 111px;
        animation: b2 3s ease-in infinite;
      }
      @keyframes b2 {
        0% {
          transform: translateX(0) translateY(0);
        }
        50% {
          transform: translateX(40px) translateY(-23px);
        }
        70%,
        100% {
          transform: translateX(50px) translateY(-20px);
        }
      }
    </style>
    <div class="box">
      <img src="./img/2.png" alt="" class="box1" />
      <img src="./img/3.png" alt="" class="box2" />
    </div>

在这里插入图片描述
结果

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/732920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CST初级教程 七

本教程将实例讲解CST设计优化仿真及其操作步骤。下面是一个微带功率分配器的图片&#xff1a; 一 3D建模 Substrate 建模 Step1 绘制Substrate外形 Substrate 的尺寸参数如下&#xff1a; Step2 添加新材料Substrate Step3 将新建的材料分配给Substrate 选中新建材料Substra…

一个cmake版的C++项目代码模板,包含流水线、git以及代码格式化配置等支持CICD发布流程

本文给出快速构建C项目的代码仓库模板 &#xff0c;简单却完整 主要包括&#xff1a; 编译脚本 打包上传脚本- 依赖拉取 代码格式化配置 git配置 流水线pipeline配置 使用这个模板 你只需要&#xff1a;将源文件放到模块目录下&#xff0c;并添加到cmake中即可 一、简…

JAVA医院绩效考核系统源码 功能特点:大型医院绩效考核系统源码

JAVA医院绩效考核系统源码 功能特点&#xff1a;大型医院绩效考核系统源码 医院绩效管理系统主要用于对科室和岗位的工作量、工作质量、服务质量进行全面考核&#xff0c;并对科室绩效工资和岗位绩效工资进行核算的系统。医院绩效管理系统开发主要用到的管理工具有RBRVS、DRGS…

emqx5.6.1 数据、配置备份与迁移

EMQX 支持导入和导出的数据包括&#xff1a; EMQX 配置重写的内容&#xff1a; 认证与授权配置规则、连接器与 Sink/Source监听器、网关配置其他 EMQX 配置内置数据库 (Mnesia) 的数据 Dashboard 用户和 REST API 密钥客户端认证凭证&#xff08;内置数据库密码认证、增强认证…

EE trade:炒伦敦金的注意事项及交易指南

在贵金属市场中&#xff0c;伦敦金因其高流动性和全球认可度&#xff0c;成为广大投资者的首选。然而&#xff0c;在炒伦敦金的过程中&#xff0c;投资者需要注意一些关键点。南华金业小编带您一起来看看。 国际黄金报价 一般国际黄金报价会提供三个价格&#xff1a; 买价(B…

“拿来主义”学习边框动画(附源码)

“拿来主义”学习边框动画&#xff0c;附源码&#xff0c;CV可用 扫码关注&#xff1a;小拾岁月&#xff0c;发送 “边框动画”&#xff0c;获取源码。 需求分析 从边框的旋转动画&#xff0c;我们可以看出&#xff0c;可以在按钮元素的下方添加给 360旋转 的元素。同时&…

MQ~消息队列能力、AMQP协议、现有选择(Kafka、RabbitMQ、RocketMQ 、Pulsar)

消息队列 消息队列看作是一个存放消息的容器&#xff0c;当我们需要使用消息的时候&#xff0c;直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构&#xff0c;所以消费消息时也是按照顺序来消费的。 常⽤的消息队列主要这 五 种&#xff0c;分别…

简单理解爬虫的概念

简单来说&#xff1a; 爬虫&#xff0c;即网络蜘蛛&#xff0c;是伪装成客户端与服务器进行数据交互的程序。 代码 代码教程分享&#xff08;无偿&#xff09;&#xff1a; 思路 1.获取网页的源码 pythondef askURL(url):head{"User-Agent":"Mozilla/5.0 (L…

51单片机STC89C52RC——5.1 LCD1602液晶显示屏

目录 目的 一&#xff0c;STC单片机模块 二&#xff0c;LCD1602 2.1 模块简介 2.2 针脚 2.3 DDRAM地址与显示器对应关系 2.4 标准字库表 2.5 常用指令 2.6 读写操作 三&#xff0c;创建Keil项目 四&#xff0c;代码 五&#xff0c;代码编译、下载到51单片机 六&a…

数据库精选题(二)(引言+关系代数)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 常见概念 一、什么是数据库&#xf…

面试突击:深入理解 Java 中的异常

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 前言 哈喽&#xff0c;大家好&#xff0c;我是 DanMu。今天想和大家聊聊 Java 中的异常。异常处理是一种重要的概念&#xff0c;因为程序总是会出现各种意料之外的问题&…

代码签名证书有什么作用?有哪些申请步骤?

代码签名证书是一种数字证书&#xff0c;它为软件开发者提供一种验证软件代码真实性和完整性的方法。通过使用代码签名证书&#xff0c;开发者可以确保他们的软件在发布后没有被篡改&#xff0c;并且用户可以信任软件的来源。 什么是代码签名证书&#xff1f; 代码签名证书是提…

同三维高清大屏多功能一体机简介——高清多能数字矩阵

产品简介 同三维高清多能数字矩阵&#xff08;硬件集软件于一体&#xff09;是依据当前高清视频正广泛应用于各类项目工程的整体形势而专门研发的、特点显著、优势诸多、极具创新性的专业级一体化监控产品。高清多能数字矩阵采用WINDOWS操作系统&#xff0c;基于高性能配置的刀…

换电脑后导入git本地仓库记录

导入本地仓库tig记录 换了新电脑&#xff0c;将旧电脑的数据盘查到新的笔记本之后发现&#xff0c;使用pycharm 读取不到本地的git提交记录了&#xff0c;我没有将本地git上传到远程仓库的习惯&#xff0c;这可抓马了&#xff0c;硬盘插回去的话也太麻烦了。试了 vscode 提示设…

【英伟达GPU的挑战者】Groq—AI大模型推理的革命者

目录 引言第一部分&#xff1a;Groq简介第二部分&#xff1a;Groq的特点与优势1、高性能推理加速2、近存计算技术3、专用ASIC芯片设计4、低延迟与高吞吐量5、成本效益分析6、易用性与集成性7、软件与硬件的协同设计 第三部分&#xff1a;Groq的使用指南1、准备工作2、简单使用样…

通过 Setapp 使用 240 多款 Mac 生产力工具以及 GPT-4o

Setapp 是一项革命性的订阅服务&#xff0c;可以使用 240 多款 Mac 应用程序的综合套件&#xff0c;并配有强大的人工智能助手。 通过 Setapp 为你的工作效率和生产力增添魔力。 Setapp 官网&#xff1a;访问&#xff08;提供 7 天试用&#xff09; Setapp 的主要功能 AI 助手…

高通安卓12-Input子系统

1.Input输入子系统架构 Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User space(用户空间) 2.getevent获取Input事件的用法 getevent 指令用于获取android系统中 input 输入事件&#xff0c;比如获取按键上报信息、获…

黑马苍穹外卖3 菜品管理 AOP+反射+阿里云OSS+基本增删改查

菜品管理 公共字段自动填充 对员工&#xff0c;菜品&#xff0c;套餐、、的设置时间等&#xff0c;导致代码冗余。 使用切面来为这些方法统一设置 枚举&#xff1a;标识当前操作的类型&#xff08;不同来类型操作的字段名不同&#xff09;。反射&#xff08;为公共字段赋值&a…

大模型自然语言生成自动驾驶可编辑仿真场景(其一 共十篇)

第一篇&#xff1a;LLM greater scene summarize 第二篇&#xff1a;LLM simulation Test effect 第三篇&#xff1a;LLM simulation driving scenario flow work 第四篇&#xff1a;LLM Algorithm flow description 第五篇&#xff1a;Configure the environment and back…

k8s离线部署nginx

1. 拉取nginx离线包到本地 sudo docker save nginx:latest -o nginx.tar 2. 导入nginx image到k8s命名空间中 sudo ctr -n k8s.io images import nginx.tar 3. 编辑nginx.yaml apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:selector:match…