css 动画

news2024/12/26 21:29:08

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>

在这里插入图片描述
结果

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

API接口技术开发分享;按关键字搜索淘宝、天猫商品API返回值接入说明

淘宝数据API的接入流程主要包括注册key账号、创建开发者应用、获取ApiKey和ApiSecret、申请API权限等步骤。淘通过这些接口可以获取商品、订单、用户、营销和物流管理等多方面的数据。以下是关于淘宝数据API接入流程的相关介绍&#xff1a; 注册key账号&#xff1a;进行账号注册…

opencv-python(十一)

图像加法 import numpy as np import cv2 img cv2.imread(jk.jpg) res cv2.add(img, img) cv2.imshow(Mypicture1,img) cv2.imshow(MyPicture2,res)cv2.waitKey(0) cv2.destroyAllWindows() res cv2.add(src1, src2, dstNone, maskNone, dtypeNone) src1&#xff1a;第一幅…

colima配置docker镜像源

只在 colima ssh 环境下修改 docker 配置文件是无效的&#xff0c;我们需要修改 colima 配置文件才能使 docker 镜像源生效。 此时你需要进入到~/.colima/default目录下编辑colima.yaml文件。该文件是 colima 的配置文件。内容如下图所示&#xff0c;我这里配置了许多家的镜像源…

我的python-web基础(Flask前后端不分类)

1.HTML HTML是超文本标记语言 &#xff08; 英文 &#xff1a; HyperText Markup Language &#xff0c; HTML &#xff09;&#xff0c;它不是编程语言&#xff0c;而是一种标记语言 HTML标记标签通常被称为HTML标签&#xff0c;它的特点如下&#xff1a; HTML标签是由尖括…

数据集标注研究

主要研究数据集标注存储文件的数据存储格式 目录 0.简介1.coco128-seg数据格式1.1 分割标注格式2.YOLO格式2.1 YOLO目标识别标签2.2 yolov5-seg分割标签2.TT100K数据集标注2.1 TT100K数据集标注文件解析0.简介 1.coco128-seg数据格式 1.1 分割标注格式 如coco128-seg数据集 …

力扣85.最大矩形

力扣85.最大矩形 遍历所有行作为底边 做求矩形面积&#xff08;84. class Solution {public:int maximalRectangle(vector<vector<char>>& matrix) {if (matrix.empty()) return 0;int n matrix.size(),m matrix[0].size();int res0;vector<int> li…

链动3+1商业模式:革新之路,引领企业持续增长

随着信息技术的飞速发展和互联网的不断渗透&#xff0c;企业的商业模式变革已经成为市场竞争中不可或缺的一环。在这个变革的浪潮中&#xff0c;链动31商业模式以其独特的逻辑和高效的激励机制&#xff0c;成为了业界瞩目的焦点。本文将深入探讨链动31模式的运作机制&#xff0…

【Matlab】-- BP反向传播算法

文章目录 文章目录 00 写在前面01 BP算法介绍02 基于Matlab的BP算法03 代码解释 00 写在前面 BP算法可以结合鲸鱼算法、飞蛾扑火算法、粒子群算法、灰狼算法、蝙蝠算法等等各种优化算法一起&#xff0c;进行回归预测或者分类预测。 01 BP算法介绍 BP&#xff08;Backpropag…

怎样去掉卷子上的答案并打印

当面对试卷答案的问题时&#xff0c;一个高效而简单的方法是利用图片编辑软件中的“消除笔”功能。这种方法要求我们首先将试卷拍摄成照片&#xff0c;然后利用该功能轻松擦除答案。尽管这一方法可能需要些许时间和耐心&#xff0c;但它确实为我们提供了一个可行的解决途径。 然…

SystemVerilog Assertion精华知识

前言 断言主要用于验证设计的行为。断言也可用于提供功能覆盖率&#xff0c;并标记用于验证的输入激励不符合假定的需求。 在验证平台中&#xff0c;通常进行三个主要任务&#xff1a; 产生激励功能检查功能覆盖率度量 在当今的设计越来越复杂情况下&#xff0c;像波形调试…

大数据学习-Hive

介绍 分布式 SQL 计算 做数据的统计分析&#xff0c;SQL 是最方便的工具 在大数据中&#xff0c;有很多的统计分析场景&#xff0c;那么 SQL 来处理大数据是非常合适且频繁的 以后可能就是 SQL Boy 了&#xff0c;所以学习前需要有 MySQL 的基础 Hive 的功能 是一个分布式…

Microsoft Edge无法启动搜索问题的解决

今天本来想清一下电脑&#xff0c;看到visual studio2022没怎么用了就打算卸载掉。然后看到网上有篇文章说进入C盘的ProgramFiles&#xff08;x86&#xff09;目录下的microsoft目录下的microsoft visual studio目录下的install目录中&#xff0c;双击InstallCleanup.exe&#…

什么概率密度函数?

首先我们来理解一下什么是连续的随机变量&#xff0c;在此之前&#xff0c;我们要先理解什么是随机变量。所谓随机变量就是在一次随机实验中一组可能的值。比如说抛硬币&#xff0c;我们设正面100&#xff0c;反面200&#xff0c;设随机变量为X&#xff0c;那么X{100,200}。 X是…

[RK-Linux] RK3562 I2C驱动TP芯片GSL3680

TP芯片GSL3680 1、简介 GSL3680是一款电容屏多点触摸控制单芯片,其芯片内部框架图如下所示: GSL3680采用了独特的互电容感应技术,可以在1ms内测量多达192个节点,支持广泛的传感器选择,包括单层或双层ITO,玻璃或薄膜,采用了先进的抗电磁干扰信号处理技术,使其对各种干…

笑死,裁员裁到大动脉了…

近日&#xff0c;某知名科技公司的裁员事件引起了社会的广泛讨论。 “笑死&#xff0c;裁员裁到大动脉了…” 看起来是大众对裁员事件的戏谑之词&#xff0c;实际上却暗示出了“打工人”的心酸同时也揭开了企业管理层的遮羞布。 &#x1f4a1;裁员决策在项目管理视角下的分析 …

AOP应用之系统操作日志

本文演示下如何使用AOP&#xff0c;去实现系统操作日志功能。 实现步骤 引入AOP包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.6.6</version></de…

【Apache Doris】周FAQ集锦:第 7 期

【Apache Doris】周FAQ集锦&#xff1a;第 7 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

YYU-5/80-260mm型钢筋残余变形测试仪 电子引伸计

YYU-5/80-260mm型钢筋接头专用引伸计&#xff0c;是按照《JGJ 107 2010 钢筋技术连接技术规程》的技术要求设计的&#xff0c;专门用于测试钢筋接头残余变形的双向平均引伸计&#xff0c;其标距可以根据钢筋直径要求进行调整。 完全符合《JGJ 107 2010 钢筋技术连接技术规程》…

Vulnhub--OS-HACKNOS-2.1

渗透复现 目标站点为wordpress&#xff0c;通过wpscan进行漏洞扫描发现漏洞插件 通过漏洞插件存在的目录穿越漏洞成功读取/etc/passwd文件中flag用户的密码 SSH登录flag用户后在备份文件中找到rohit用户的密码 切换rohit用户&#xff0c;rohit用户能够以root权限执行任何文…

靠3个字寻求机会,情商不够,别勉强自己

之前我分享了一篇文章寻求一个自由职业的前端伙伴&#xff0c;吸引了好几位朋友来咨询合作&#xff0c;中间出现了不少插曲&#xff0c;好在结果是令人满意的。 作为一名初次创业者&#xff0c;我承认很多地方做的不是那么到位&#xff0c;比如招聘合作伙伴&#xff0c;理想的状…