CSS--空间转换及动画

news2024/11/27 7:39:08

01-空间转换

空间转换简介

  • 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。
  • 空间转换也叫 3D转换
  • 属性:transform

在这里插入图片描述

平移

transform: translate3d(x, y, z);
transform: translateX();
transform: translateY();
transform: translateZ();

取值与平面转换相同

默认情况下,Z 轴平移没有效果,原因:电脑屏幕默认是平面,无法显示 Z 轴平移效果

视距

作用:指定了观察者与 Z=0 平面的距离,为元素添加透视效果

透视效果:近大远小、近实远虚

属性:(添加给父级,取值范围 800-1200)

perspective: 视距;

在这里插入图片描述

旋转

  • Z 轴:rotateZ()
  • X 轴:rotateX()
  • Y 轴:rotateY()

左手法则

作用:根据旋转方向确定取值正负

使用:左手握住旋转轴, 拇指指向正值方向, 其他四个手指弯曲方向为旋转正值方向

在这里插入图片描述

rotate3d-了解

  • rotate3d(x, y, z, 角度度数) :用来设置自定义旋转轴的位置及旋转的角度
  • x,y,z 取值为0-1之间的数字

立体呈现

作用:设置元素的子元素是位于 3D 空间中还是平面中

属性名:transform-style

属性值:

  • flat:子级处于平面中
  • preserve-3d:子级处于 3D 空间

案例-3d导航

在这里插入图片描述

案例步骤:

  1. 搭建立方体
    1. 绿色是立方体的前面
    2. 橙色是立方体的上面
  2. 鼠标悬停,立方体旋转

在这里插入图片描述

在这里插入图片描述

.nav li {
  position: relative;
  width: 100px;
  height: 40px;
  line-height: 40px;
  transition: all 0.5s;

  transform-style: preserve-3d;

  /* 为了看到橙色和绿色的移动过程,给立方体添加旋转 */
  /* transform: rotateX(-20deg) rotateY(30deg); */
}

.nav li a {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  text-decoration: none;
  color: #fff;
}

/* 立方体每个面都有独立的坐标轴,互不影响 */
.nav li a:first-child {
  background-color: green;
  transform: translateZ(20px);
}

.nav li a:last-child {
  background-color: orange;
  transform: rotateX(90deg) translateZ(20px);
}

.nav li:hover {
  transform: rotateX(-90deg);
}

缩放

transform: scale3d(x, y, z);
transform: scaleX();
transform: scaleY();
transform: scaleZ();

02-动画

  • 过渡:实现两个状态间的变化过程
  • 动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)

动画实现步骤

  1. 定义动画
/* 方式一 */
@keyframes 动画名称 {
  from {}
  to {}
}

/* 方式二 */
@keyframes 动画名称 {
  0% {}
  10% {}
  ......
  100% {}
}
  1. 使用动画
animation: 动画名称 动画花费时长;

animation复合属性

在这里插入图片描述

提示:

  • 动画名称和动画时长必须赋值
  • 取值不分先后顺序
  • 如果有两个时间值,第一个时间表示动画时长,第二个时间表示延迟时间

animation拆分写法

在这里插入图片描述

案例-走马灯

![在这里插入图片描述](https://img-blog.csdnimg.cn/6ba7b702cec94b8fa5ee03937d1d1e29.gif

  • HTML 结构
<li><img src="./images/1.jpg" alt="" /></li>
<li><img src="./images/2.jpg" alt="" /></li>
<li><img src="./images/3.jpg" alt="" /></li>
<li><img src="./images/4.jpg" alt="" /></li>
<li><img src="./images/5.jpg" alt="" /></li>
<li><img src="./images/6.jpg" alt="" /></li>
<li><img src="./images/7.jpg" alt="" /></li>
<!-- 替身:填补显示区域的露白 -->
<li><img src="./images/1.jpg" alt="" /></li>
<li><img src="./images/2.jpg" alt="" /></li>
<li><img src="./images/3.jpg" alt="" /></li>
  • CSS 样式
.box {
  width: 600px;
  height: 112px;
  border: 5px solid #000;
  margin: 100px auto;
  overflow: hidden;
}

.box ul {
  display: flex;
  animation: move 6s infinite linear;
}

/* 定义位移动画;ul使用动画;鼠标悬停暂停动画 */
@keyframes move {
  0% {
    transform: translate(0);
  }
  100% {
    transform: translate(-1400px);
  }
}

.box:hover ul {
  animation-play-state: paused;
}

无缝动画原理:复制开头图片到结尾位置(图片累加宽度 = 区域宽度)

精灵动画

在这里插入图片描述

  • 核心

在这里插入图片描述

  • 制作步骤

    1.准备显示区域

    盒子尺寸与一张精灵小图尺寸相同

    2.定义动画

    移动背景图(移动距离 = 精灵图宽度)

    3.使用动画

    steps(N),N 与精灵小图个数相同
    在这里插入图片描述

div {
  width: 140px;
  height: 140px;
  border: 1px solid #000;
  background-image: url(./images/bg.png);
  animation: run 1s steps(12) infinite;
}

@keyframes run {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -1680px 0;
  }
}

多组动画

animation: 
  动画一,
  动画二,
  ... ...
;

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

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

相关文章

能源硕士为何受热捧?社科院与杜兰大学能源管理硕士项目为你解惑

能源行业可谓是全球最具发展前景的行业之一&#xff0c;能源管理硕士更是近几年被争相推荐的“大热门”。广泛的就业选择、较高且稳定的收入&#xff0c;是该专业的特点之一&#xff0c;毕业后可选择在政府相关机构、能源监管部门、全国节能减排领域的各类研究机构工作&#xf…

Linux学习 Day3

目录 1. 时间相关的指令 2. cal指令 3. find指令&#xff1a;&#xff08;灰常重要&#xff09; -name 4. grep指令 5. zip/unzip指令 6. tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#xff0c;不打开它&#xff0c;直接看内容 7. bc指令 8. uname –…

Shell基础学习---1、Shell概述、脚本入门、变量

1、Shell 概述 Shell是一个命令解释器&#xff0c;它接收应用程序/用户命令&#xff0c;然后调用操作系统内核。 说明&#xff1a;Shell是一个功能相当强大的编程语言&#xff0c;易编写&#xff0c;易调试、灵活性强。 1、 提供的Shell解释器 2、bash和sh的关系 3、CentOS…

简述-关于Kmeans轮廓系数随着聚类个数的增加后减少的问题

当我们在做Kmeans聚类的准备工作时&#xff0c;通常会用到手肘法&#xff08;elbow method&#xff09;或者轮廓系数&#xff08;silhouette score&#xff09;去找到最佳簇类个数。 对于轮廓系数寻找法&#xff0c;理论上来说&#xff0c;轮廓系数会随着聚类个数的增加而增加…

云渲染是什么?云渲染和传统渲染农场有什么区别?

云渲染是什么&#xff1f;云渲染和传统渲染农场有什么区别&#xff1f; 今天云渲染小编就来和大家说一说云渲染以及它和传统渲染农场的区别。 一、什么是云渲染&#xff1f;云渲染什么意思&#xff1f; 首先云渲染云渲染是一种依托于云计算的云端服务&#xff0c;用户将本地…

UVM 验证方法学之interface学习系列文章(七)高级 《bind 操作》(3)

在之前的文章,我们就bind 机制,进行了用法分析。其实,对于一些大型的复杂SOC设计,bind的操作,可以说是非常实用的。它不仅能够完成各种UVC的驱动激励操作,而且一定程度能够简便验证平台的搭建和后期维护。下面,我们举个例子说明bind在当今复杂环境下的妙用。 一 TB 思…

聊一聊API 测试有哪些不同类型?

用户希望能够跨设备和浏览器使用应用程序。因此&#xff0c;您必须进行全面的不同 API 测试类型&#xff0c;以了解它的工作情况以及它是否可以执行其主要功能。一些测试人员需要更多地关注这方面&#xff0c;因此&#xff0c;我们看到许多质量较差的应用程序。今天&#xff0c…

23. Unity - 3D游戏开发小计02 --- 动画结束UI、导航网格代理

1. 动画结束UI 一个游戏在通过后,都是需要一个界面显示当前游戏已经结束,即需要给游戏添加一个结束的界面,可以做一个简单的游戏结束界面,用一个图片展示: 首先在层级窗口添加两层UI中的Image,其中第一层的Image仅作背景,可将其填充颜色设置为纯黑色,第二层的Image添加…

消化道炎症 | 细菌蛋白酶失调的作用

谷禾健康 肠道蛋白酶 蛋白水解平衡失调通常与疾病有关。例如丝氨酸蛋白酶和基质金属蛋白酶参与多种生物过程&#xff0c;尤其是炎症反应。 胃肠道拥有数以万亿计的微生物&#xff0c;并暴露于高水平的蛋白酶。研究表明蛋白酶在维胃肠道稳态中的关键作用&#xff0c;它们的上调…

代搭建开发chatgpt

ChatGPT是由OpenAI开发的一款自然语言处理模型&#xff0c;而且它已经预训练好了。基于它开发ChatGPT应用程序需要以下步骤&#xff1a; 准备环境&#xff1a;安装Python3和相关的库&#xff0c;如TensorFlow、Keras等&#xff0c;并下载预训练的ChatGPT模型。 数据准备…

深度学习用于医学预后-第二课第三周8-13节-估计生存函数

上节课知道了数据中存在删失数据&#xff0c;那么我们如何利用这些数据建立生存函数。这将是本节课的重点内容。 文章目录 估计生存函数立即死亡还是永远存活生存概率介于两者之间使用删失数据条件概率的链式法则推导生存函数根据数据计算概率 估计生存函数 本节课&#xff0c;…

API安全性的要素与开发人员必修课测试

一、API安全性的要素主要包括以下几点&#xff1a; 1.身份验证和访问控制&#xff1a;API应该通过身份验证来验证请求的源&#xff0c;确保只有授权的用户或应用程序才能访问API。这可以通过使用API密钥、访问令牌、OAuth令牌或其他身份验证机制实现。 2.数据加密&#xff1a;A…

OpenCV中的图像处理3.9(七)轮廓线及其层次结构

目录 3.9.4 轮廓线&#xff1a;更多的功能目标理论和代码练习 3.9.5 轮廓线层次结构目标理论什么是层次结构&#xff1f;OpenCV中的层次结构表示法轮廓线检索模式 翻译及二次校对&#xff1a;cvtutorials.com 编辑者&#xff1a;廿瓶鲸&#xff08;和鲸社区Siby团队成员&#x…

Pyqt5经典案例学习

目录 前言一、图表主题动画1-1、效果展示1-2、代码分段解析1-2-1、导库1-2-2、初始化1-2-3、数据生成函数以及信号与槽的连接 总结 前言 案例来源于GitHub项目《各种各样的PyQt测试和例子》 一、图表主题动画 1-1、效果展示 功能&#xff1a; 支持不同的主题和动画效果。用户…

Linux环境下的VScode使用教程

前言 &#xff08;1&#xff09;对于学习本文需要先有自行安装好VMware&#xff0c;对VMware有简单的了解。 &#xff08;2&#xff09;对于绝大多数使用Linux的人而言&#xff0c;经常在Windows环境下使用source insight进行编译程序&#xff0c;然后利用FileZilla将Windows的…

Ansys仿真寄生参数对信号反射的影响

1、短桩线传输线的反射 短桩线在PCB走线时会经常遇到&#xff0c;这个桩线会对信号的传输产生反射&#xff0c;那么桩线的长度和信号反射的关系可以仿真看一下&#xff0c;电路如下图所示&#xff0c;下图中&#xff0c;我们设置信号源的上升下降时间为0.8ns&#xff0c;桩线的…

Auto GPT 与 ChatGPT:有何区别?

人工智能正在迅速发展&#xff0c;即使是最熟练的人也越来越难以跟上。每隔一段时间&#xff0c;就会出现新的 AI 工具&#xff0c;在这些工具中&#xff0c;有些是时尚的&#xff0c;有些是真正有价值的。 Auto-GPT 是一种建立在 ChatGPT 技术之上的人工智能&#xff0c;很可…

leaflet根据坐标点设置多边形,生成geojson文件,计算面积值(133)

第133个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中根据坐标点设置多边形,通过.toGeoJSON() 来生成geojson文件,通过turf.area来计算面积值。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共123…

浅谈Redis7基础命令

Redis基本命令 Ping命令 心跳命令 set & get命令 set key value get key select命令 切换数据库 dbsize命令 flushdb命令 清除当前数据库数据 flushell命令 清除所有数据库数据 退出命令 quit、exit 关闭redis redis-cli shutdown shutdown 查看进程及端口号 #查看…

VirtualBox ping和xshell切换

使用virtualbox有一个奇怪的现象&#xff0c;每次连接xshell的时候ping百度&#xff0c;ping不通&#xff0c;能ping通的时候又连接不了xsell。 两种模式来回切换每次都要查要修改的东西&#xff0c;太麻烦了&#xff0c;就在这记录一下。 连接xshell 选中想要链接xshell的虚…