当前位置: 首页 > news >正文

第二章:CSS基础进阶-part2:CSS过渡与动画

文章目录

  • CSS3 过渡动画
  • 一、transition属性
  • 二、transform属性-2D变换
    • 2.1 tanslate : 移动
    • 2.2 rotate-旋转
    • 2.3 scale-变形
    • 2.4 skew-斜切
    • 2.5 transform-origin: 变换中心点设置
  • 三、CSS3关键帧动画
  • 四、CSS3-3D变换
    • 4.1 perspective 定义3D元素距视图距离
    • 4.2 transform-style
    • 4.3 3D位移- translate3d
    • 4.4 3D旋转- rotate(x,y,z,a)
    • 4.5 3D缩放
    • 4.6 多重变形

CSS3 过渡动画

一、transition属性

过渡是元素从一种样式逐渐改变为另一种的效果.它主要通过transition四个过渡属性来控制:transition-property、transition-duration、transition-timing-function、transition-delay(四个属性也可以合并简写成: transition)。
语法:
transition: property duration timing-function delay;
1、transition-property

  • transition-property 属性规定应用过渡效果的 CSS 属性的名称(当指定的 CSS 属性改变时,过渡效果将开始)
  • transition-property: none |all |property; 过渡属性
    • none:没有属性会获得过渡效果。
    • all: 所有属性都将获得过渡效果
    • property:定义应用过渡效果的CSS 属性名称列表,列表以逗号分隔

2、transition-duration:过渡时间

  • transition-duration: time
    • time规定完成过渡效果需要花费的时间 (以秒或毫秒计)
    • 默认值是 0,意味着不会有效果

3、transition-timing-function:缓动函数
- linear: 以相同速度开始至结束的过渡效果 (cubic-bezier(0,0,1,1))
- ease: 慢速开始,然后变快,慢速结束 (cubic-bezier(0.25,0.1,0.25,1))
- ease-in: 以慢速开始的过渡效果 (cubic-bezier(0.42,0,1,1))
- ease-out: 以慢速结束的过渡效果 (cubic-bezier(0,0,0.58,1))
- ease-in-out: 以慢速开始和结束的过渡效果 (cubic-bezier(0.42,0,0.58,1))
- cubic-bezier(n,n,n,n): 在 cubic-bezier 函数中定义自己的值,可能的值是 0至1之间的数值。

4、transition-delay

  • transition-delay: time;
  • time 规定在过渡效果开始之前需要等待的时间,以秒或毫秒计。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* transition */.box{width:300px;height: 100px;background: pink;transition: all .5s linear;}.box:hover{background: cyan;}</style>
</head>
<body><div class="box"></div>
</body>
</html>

二、transform属性-2D变换

2.1 tanslate : 移动

在这里插入图片描述

  • transform:translate(x,y) :平移,x,y可以是像素也可以是百分比

2.2 rotate-旋转

在这里插入图片描述

2.3 scale-变形

在这里插入图片描述

2.4 skew-斜切

在这里插入图片描述

2.5 transform-origin: 变换中心点设置

transform-origin: x y:

  • x:默认值50%,left|center| right,长度,百分比
  • y: 默认值50%,top | center | bottom,长度,百分比
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width:200px;height: 200px;background: cyan;}.translate{transform: translate(100px,100px);}.rotate{transform: rotate(30deg);}.scale{transform: scale(0.5);}.skew{transform: skew(-50deg);}</style>
</head>
<body><div class="box"></div><div class="button-group"><button class="translate-btn">translate</button><button class="rotate-btn">rotate</button><button class="scale-btn">scale</button><button class="skew-btn">skew</button></div><script>var box = document.querySelector(".box")var translate = document.querySelector(".translate-btn")var rotate = document.querySelector(".rotate-btn")var scale = document.querySelector(".scale-btn")var skew = document.querySelector(".skew-btn")translate.onclick=function(){box.className = "box translate"}rotate.onclick=function(){box.className = "box rotate"}scale.onclick=function(){box.className = "box scale"}skew.onclick=function(){box.className = "box skew"}</script>
</body>
</html>

三、CSS3关键帧动画

  • CSS3 关键帧动画通过对关键帧的指定来在页面上产生更复杂的动画效果,以方便制作逐帧动画。
    • 通过“@keyframes 动画名”来定义关键帧
    • 通过animation属性来设置动画信息
    • animation: name duration timing-function delay iteration-count direction fill-mode play-state;
      • animation-name: 指定要绑定到选择器的关键帧的名称(keyframes名),必填项
      • animation-duration: 时长,单位秒或毫秒
      • animation-timing-function: 缓动函数,默认匀速
      • animation-delay: 延迟时间,单位可以是秒(s)或毫秒(ms)
      • animation-iteration-count: 定义动画的播放次数。
        • 值类型:n(数字)| infinite(无限次)
      • animation-direction: 指定是否应该轮流反向播放动画
        • 值包括: normal|reverse|alternate|alternate-reverse|initial|inherit;
        • reverse: 动画反向播放
        • alternate: 动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放。
        • alternate-reverse: 动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放。
        • initial: 设置该属性为它的默认值。
      • animation-fill-mode: 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
        • 可选值:none|forwards|backwards|both|initial|inherit;
        • forwards: 结束时停在最后一帧
        • backwards: 结束时显示第一帧
      • animation-play-state: 指定动画是否正在运行或已暂停
        • 可选值: running(默认) | paused。
		<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width:100px;height: 100px;background: pink;position: absolute;left:0;top:0;animation: go 2s linear 0s 3 forwards;}@keyframes go {0%{left:0;}100%{left:300px;}}</style>
</head>
<body><div class="box"></div>
</body>
</html>

四、CSS3-3D变换

现实世界拍摄的三要素:镜头,拍摄环境的空间,拍摄的物件。CSS 3D的世界里,也要找到并创建这三个物件要素,不过因为在CSS世界里并没有摄影镜头、拍摄的环境的空间等这些真实世界拍摄需要的要素,所以变成用div进行展现,在对应的div 上头加入对应的style属性,就可以进行模拟,我们这里就必须要用到三层div,最外层是摄影镜头,第二层为立体空间,第三层则是立体空间内的立体元素

4.1 perspective 定义3D元素距视图距离

  • perspective属性用来定义3D元素距视图的距离,以像素计,通常和perspective-origin属性一起使用,perspective-origin属性可以改变3D元素的底部位置。
  • perspective-origin属性允许改变3D元素查看3D元素的视图;当为元素定义perspective属性时,其子元素会获得透视效果,而不是元素本身;perspective 属性只影响 3D 转换元素。
  • perspective属性语法格式:
    - perspective: number none
    - number:元素距离视图的距离,以像素计;
    - none:与0相同,不设置透视(默认) :

在这里插入图片描述

4.2 transform-style

控制子元素是否开启三维立体环境。。transform-style:flat子元素不开启3d立体空间 默认的.

  • transform-style: preserve-3d;子元素开启立体空间
  • 代码写给父级,但是影响的是子盒子
  • 这个属性很重要,后面必用

4.3 3D位移- translate3d

在CSS3中,3D位移操作主要通过translatezO和translate3d0两个函数实现。其中,translate3d()函数使一个元素在三维空间移动。其基本语法如下: translate3d(tx,ty,tz)
其中,各参数取值说明如下:

  • tx;代表横向坐标位移向量的长度
  • ty:代表纵向坐标位移向量的长度:
  • tz:代表Z轴位移向量的长度。该值不能是一个百分比值,如果取值为百分比值,将被认为是无效值。

4.4 3D旋转- rotate(x,y,z,a)

在三维变形中,可以让元素在任何轴上旋转。CSS3新增4个旋转函数: rotateX0、rotateXO函数允许rotateYO和rotateZ0。一个元素围绕X轴旋转:rotateY0函数允许一个元素围绕Y轴旋转;rotatez()函数允许一个元素围绕Z轴旋转

  • rotateX(a)\rotateY(a)、rotateZ(a)
  • Rotate3d(x,y,z,a)
    - rotate(1,0,0,3) = rotateX(30deg)
    - rotate(0,1,0,30deg)=rotateY(30deg)
    - rotate(0,0,1,30deg)=rotateZ(30deg)

4.5 3D缩放

·CSS3中,3D缩放处理主要通过scalez0和scale3d(两个函数来实现。当scale3d0中X轴和Y轴同时为1,即scale3d1,1,sz),其效果等同于scaleZ(sz)。通过使用3D缩放函数,可以让元素在Z轴上按比例缩放。默认值为1,当值大于1时,元素放大,反之小于 1且大于0.01时,元素缩小。

  • scale3d0函数的使用语法如下: scale3d(sx,sy,sz)
  • 其中,各参数作用如下。
    - SX:横向缩放比例;
    - SY:纵向缩放比例:
    - SZ:Z轴缩放比例;

4.6 多重变形

不管是2D变形还是3D变形,都可以使用多重变形,它们之间使用在CSS3中,空格分隔,具体语法如下: transform: <transform-function> <transform-function>

  • 其中,transfrom-function是指CSS3中的任何变形函数。

相关文章:

第二章:CSS基础进阶-part2:CSS过渡与动画

文章目录 CSS3 过渡动画一、transition属性二、transform属性-2D变换2.1 tanslate &#xff1a; 移动2.2 rotate-旋转2.3 scale-变形2.4 skew-斜切2.5 transform-origin: 变换中心点设置 三、CSS3关键帧动画四、CSS3-3D变换4.1 perspective 定义3D元素距视图距离4.2 transform-…...

华为OD真题---玩牌高手--带答案

2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09;or2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; 玩牌高手 给定一个长度为n的整型数组&#xff0c;表示一个选手在n轮内可选择的牌面分数。选手基于规…...

案例14 Spring MVC文件上传案例

基于Spring MVC实现文件上传&#xff1a; 使用commons-fileupload实现上传文件到本地目录。 实现上传文件到阿里云OSS和从阿里云OSS下载文件到本地。 1. 创建项目 选择Maven快速构建web项目&#xff0c;项目名称为case14-springmvc03。 ​ 2. 配置Maven依赖 <?xml ver…...

如何用Python实现多线程

1 问题 线程是操作系统能够进行运算调度的最小单位。进程被包含在进程中&#xff0c;是进程中实际处理单位。一条线程就是一堆指令集合。一条线程是指进程中一个单一顺序的控制流&#xff0c;一个进程中可以并发多个线程&#xff0c;每条线程并行执行不同的任务。那么如何用pyt…...

Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

对话即数据分析,网易数帆ChatBI做到了

大数据产业创新服务媒体 ——聚焦数据 改变商业 在当今数字化快速发展的时代&#xff0c;数据已经成为业务经营与管理决策的核心驱要素。无论是跨国大企业还是新兴创业公司&#xff0c;正确、迅速地洞察数据已经变得至关重要。然而&#xff0c;传统的BI工具往往对用户有一定的…...

简单记录牛客top101算法题(初级题C语言实现)BM17 二分查找 BM21 旋转数组的最小数字 BM23 二叉树的前序遍历

1. BM17 二分查找 要求&#xff1a;给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff08;下标从 0 开始&#xff09;&#xff0c;否则返回 -1。 输入&#xff1a…...

日常BUG——Java使用Bigdecimal类型报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 直接上代码&#xff1a; Test public void test22() throws ParseException {System.out.p…...

为Windows Terminal设置背景图片

直接通过界面上选项无法达到修改背景图片的目的&#xff0c;后再在官网&#xff0c;和git上找到通过修改配置文件来更改背景图片 首先打开设置界面 点击左下角打开settings.json文件 在json中profiles关键字default选项相面增加几个key,就像下面 修改前修改后 修改后的termin…...

【Spring】-Spring中Bean对象的存取

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Framework】 主要内容&#xff1a;往spring中存储Bean对象的三大方式&#xff1a;XML方式(Bean标签)&#xff1b;五大类注解&#xff1b;方法注解。从spring中取对象的两种方式…...

机器人CPP编程基础-03变量类型Variables Types

机器人CPP编程基础-02变量Variables 全文AI生成。 C #include<iostream>using namespace std;main() {int a10,b35; // 4 bytescout<<"Value of a : "<<a<<" Address of a : "<<&a <<endl;cout<<"Val…...

或许有用的开源项目平台——物联网、区块链、商城、CMS、客服系统、低代码、可视化、ERP等

摘自个人印象笔记Evernote Export wumei-smart-物美智能开源物联网平台 官网&#xff1a;https://wumei.live/ gitee&#xff1a;https://gitee.com/kerwincui/wumei-smart 一个简单易用的物联网平台。可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧…...

火车头采集伪原创插件【php源码】

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python代码大全和用法&#xff0c;python代码大全简单&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 1、题目&#xff1a;列表转换为字典。 程序源代码&#xff1a; 1 #!/us…...

【数学】CF1514 C

Problem - 1514C - Codeforces 题意&#xff1a; 思路&#xff1a; Code&#xff1a; #include <bits/stdc.h>using i64 long long;constexpr int N 2e5 10; constexpr int M 2e5 10; constexpr int mod 998244353;void solve() {int n;std::cin >> n;std:…...

SqlServer基础之(触发器)

概念&#xff1a; 触发器&#xff08;trigger&#xff09;是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法&#xff0c;它是与表事件相关的特殊的存储过程&#xff0c;它的执行不是由程序调用&#xff0c;也不是手工启动&#xff0c;而是由事件来触发&#x…...

数据结构刷题训练:队列实现栈

目录 前言 1. 题目&#xff1a;使用队列实现栈 2. 思路 3. 分析 3.1 创建栈 3.2入栈 3.3 出栈 3.4 栈顶数据 3.5 判空和 “ 栈 ” 的销毁 4. 题解 总结 前言 我们已经学习了栈和队列&#xff0c;也都实现了它们各自的底层接口&#xff0c;那么接下我们就要开始栈和队列的专项刷…...

(统计学习方法|李航)第四章 朴素贝叶斯算法——贝叶斯估计

贝叶斯估计方法&#xff1a; 计算男女时只有两个值&#xff0c;所以K2 贝叶斯估计就是拉普拉斯平滑 估计方法&#xff1a;为什么叫做贝叶斯估计呢&#xff1f; 例题&#xff1a; 重新回顾以下朴素贝叶斯&#xff1a; 对他求导&#xff0c;求出最大值 得到了色i他的估计值&…...

企业直播MR虚拟直播(MR混合现实直播技术)视频介绍

到底什么是企业直播MR虚拟直播&#xff08;MR混合现实直播技术&#xff09;&#xff1f; 企业直播MR虚拟直播新玩法&#xff08;MR混合现实直播技术&#xff09; 我的文章推荐&#xff1a; [视频图文] 线上研讨会是什么&#xff0c;企业对内对外培训可以用线上研讨会吗&#x…...

React Fiber: 从 Reconciliation 到 Concurrent Mode

React Fiber 是 React 中的一种新的协调算法&#xff0c;它的主要目的是提高 React 的性能和可维护性。在 React Fiber 之前&#xff0c;React 使用了一种叫做 Stack Reconciliation 的算法来处理组件的更新和渲染。但是 Stack Reconciliation 存在一些问题&#xff0c;比如无法…...

【PostgreSQL内核学习(十一)—— OpenGauss源码学习(CopyTo)】

可优化语句执行 概述什么是列存储&#xff1f;列存的优势 相关函数CopyToCStoreCopyToCopyStatetupleDescCStoreScanDesc CStoreBeginScanRelationSnapshotProjectionInfo GetCStoreNextBatchRunScanFillVecBatchCStoreIsEndScan CStoreEndScan 声明&#xff1a;本文的部分内容…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...