CSS学习17--CSS3 过渡、2D变形、3D变形、动画

news2024/9/21 16:28:58

CSS3 过渡、2D变形、3D变形、动画

  • 一、过渡
  • 二、2D变形 transform
    • 1.移动 translate
    • 2.缩放 scale
    • 3. 旋转 rotate
    • 4. 倾斜 skew
  • 三、3D变形
    • 1. rotateX()rotateY() rotateZ()
    • 2. 体会透视 perspective
    • 3. translateX() translateY() translateZ()
    • 4. 开门大吉例子
    • 5. backface-visibility
  • 四、动画
    • 例子:无缝滚动

一、过渡

为元素从一种样式变为另一种样式时添加效果。

transition: 过渡属性 花费时间 运动曲线 何时开始;
前两个值不可省略,运动曲线默认ease,合适开始默认0s立即开始可以省略。

注意:transition需要写在div里而不是hover里;多个属性设置不同时,用逗号隔开;需要描述所有属性变化时,过渡属性值为all。

<html>
	<head>
		<style>
			div {
				width: 200px;
				height: 200px;
				background-color: pink;
				transition: width 0.2s ease 0s,height 0.3s ease-in 1s;
				/* transition: all 0.6s ease 0s; */
			}
			div:hover {
				width: 300px;
				height: 300px;
			}
		</style>
	</head>
	<body>
	<div></div>
</html>

二、2D变形 transform

做元素的变形、位移、缩放,可以和transition结合使用。

1.移动 translate

用translate平移

transform: translate(x,y)

<html>
	<head>
		<style>
			div {
				width: 200px;
				height: 200px;
				background-color: pink;
				transition: all 0.5s;
			}
			div:active { /*鼠标点击没有松开鼠标,相当于点击*/
				transform: translate(100px,200px);
				transform: translate(50%,100%);
			}
		</style>
	</head>
	<body>
	<div></div>
</html>

注意:

  • 只移动一个坐标可以把另一个坐标设为0;

  • 也可以写成:translateX(只跟一个参数);translateY(只跟一个参数)。

  • translate移动的距离如果是%,则以自己的宽度为准,而不是父亲为准。

    <html>
    	<head>
    		<style>
    			div {
    				width: 200px;
    				height: 200px;
    				background-color: pink;
    				position: absolute; /*盒子居中对齐*/
    				left: 50%; /*以父级宽度为准*/
    				margin-left: -100px; /*需要计算*/
    				top: 50%;
    				transform: translate(-50%,-50%);
    			}
    		</style>
    	</head>
    	<body>
    	<div></div>
    </html>
    

2.缩放 scale

transform: scale(x,y)
x和y的值小于1为缩小倍数,大于1为放大倍数。

<html>
	<head>
		<style>
			div {
				width: 200px;
				height: 200px;
				background-color: pink;
			}
			div:hover {
				transform: scale(1.2,1.5);
			}
		</style>
	</head>
	<body>
	<div></div>
</html>

注意:

  • 如果只写一个参数,宽高都缩放!

  • 谁做动画,谁加过渡!

    <html>
    	<head>
    		<style>
    			div {
    				width: 100px;
    				height: 50px;
    				background-color: pink;
    				overflow: hidden;
    			}
    			div img {
    				transition: all 0.3s;
    			}
    			div:hover img {
    				transform: scale(1.2,1.5);
    			}
    		</style>
    	</head>
    	<body>
    	<div>
    		<img src="images/search.png" alt="">
    	</div>
    </html>
    

3. 旋转 rotate

transform: rotate(*deg)
正值是顺时针,负值是逆时针;比如90deg是顺时针旋转90度

<html>
	<head>
		<style>
			div {
				width: 100px;
				height: 50px;
				background-color: pink;
				overflow: hidden;
			}
			div img {
				transition: all 0.3s;
			}
			div:hover img {
				transform: rotate(90deg);
			}
		</style>
	</head>
	<body>
	<div>
		<img src="images/search.png" alt="">
	</div>
</html>

旋转中心点的设置:

	<html>
		<head>
			<style>
				div img {
					padding: 200px;
					transition: all 0.3s;
					transform-origin: bottom top;
				}
				div:hover img {
					transform: rotate(90deg);
				}
			</style>
		</head>
		<body>
		<div>
			<img src="images/search.png" alt="">
		</div>
	</html>

4. 倾斜 skew

transform: skew(x,y);

<html>
	<head>
		<style>
			div {
				font-size: 50px;
				font-weight: 700;
				transition: all 0.2s;
			}
			div:hover {
				transform: skew(20deg,0);
			}
		</style>
	</head>
	<body>
	<div>
		123
	</div>
</html>

三、3D变形

3D多了z轴,遵循左手法则。
在这里插入图片描述
在这里插入图片描述

1. rotateX()rotateY() rotateZ()

<html>
	<head>
		<style>
			div img {
				transition: all 0.2s;
			}
			div:hover img {
				transform: rotateX(180deg);
			}
		</style>
	</head>
	<body>
	<div>
		<img src="images/course.png" alt="">
	</div>
</html>

2. 体会透视 perspective

  • 透视原理:近大远小。
  • 浏览器透视:把近大远小的所有图像,透视在屏幕上。
  • perspective:视距,表示视点距离屏幕的长短。视点,用于模拟透视效果时人眼的位置

注:并非任何情况下需要透视效果,根据开发需要进行设置。
perspective一般作为一个属性,设置给父元素,作用于所有3D转换的子元素

<html>
	<head>
		<style>
			div {
				perspective: 1000px;
			}
			div img {
				transition: all 0.2s;
			}
			div:hover img {
				transform: rotateX(180deg);
			}
		</style>
	</head>
	<body>
	<div>
		<img src="images/course.png" alt="">
	</div>
</html>

3. translateX() translateY() translateZ()

Z轴是物体到屏幕的距离,透视是一种展示形式。

<html>
	<head>
		<style>
			div {
				margin: 200px;
				perspective: 1000px;
			}
			div img {
				transition: all 0.2s;
			}
			div:hover img {
				transform: translateZ(100px);
			}
		</style>
	</head>
	<body>
	<div>
		<img src="images/course.png" alt="">
	</div>
</html>

transform: translate3d(x,y,z);
z轴只能是px单位

<html>
	<head>
		<style>
			div {
				margin: 200px;
				perspective: 1000px;
			}
			div img {
				transition: all 0.2s;
			}
			div:hover img {
				transform: translate3d(100px,100px,100px);
			}
		</style>
	</head>
	<body>
	<div>
		<img src="images/course.png" alt="">
	</div>
</html>

4. 开门大吉例子

<html>
	<head>
		<style>
			div {
				width: 200px;
				height: 180px;
				margin: 200px;
				background: url(images/course.png);
				perspective: 1000px;
				position: relative;
			}
			span {
				display: block;
				width: 100px;
				height: 180px;
				background-color: pink;
				border: 1px solid black;
				transition: all 0.2s;
			}
			span.door-l {
				position: absolute;
				top: 0;
				left: 0;
				transform-origin: left;
			}
			span.door-r {
				position: absolute;
				top: 0;
				right: 0;
				transform-origin: right;
			}
			div:hover .door-l   {
				transform: rotateY(-130deg);
			}
			div:hover .door-r  {
				transform: rotateY(130deg);
			}
		</style>
	</head>
	<body>
	<div>
		<span class="door-l"></span>
		<span class="door-r"></span>
	</div>
</html>

在这里插入图片描述

5. backface-visibility

用于设置图片不正向对着屏幕时是否可见。
可以用来写翻转图片,先translateY(180deg),当backface-visibility:hidden可以实现翻转时显示背面图片。

四、动画

animation: 动画名称 动画时间 运动曲线 何时开始 播放次数 是否反方向;

动画名称是自定义的

<html>
	<head>
		<style>
			div {
				width: 200px;
				height: 180px;
				margin: 200px;
				background: url(images/course.png);
				/*animation: name duration timing-function delay iteration-count direction fill-mode;*/
				animation: go 2s ease 0s 2 reverse;
			}
			@keyframes go { /*定义动画*/
				from{
					transform: translate(0);
				}
				to{
					transform: translate(600px);
				}
			}
		</style>
	</head>
	<body>
	<div>
	</div>
</html>

例子:无缝滚动

<html>
	<head>
		<style>
			* {
				margin: 0;
				padding: 0;
			}
			ul {
				list-style: none;
			}
			nav {
				width: 1200px;
				height: 20px;
			}
			nav li {
				float: left;
			}
			nav ul {
				width: 200%; /*两倍!!!*/
				animation: moving 2s linear infinite;
			}
			div {
				width: 200px;
				height: 20px;
			}
			@keyframes moving { /*定义动画*/
				from{
					transform: translate(0);
				}
				to{
					transform: translate(-1000px);
				}
			}
			nav:hover ul { /*鼠标经过nav,里面的ul不做动画*/
				animation-play-state: paused ;
			}
		</style>
	</head>
	<body>
	<nav>
		<ul>
			<li><div style="background-color: red;"></div></li>
			<li><div style="background-color: orange;"></div></li>
			<li><div style="background-color: yellow;"></div></li>
			<li><div style="background-color: green;"></div></li>
			<li><div style="background-color: blue;"></div></li>
			<li><div style="background-color: purple;"></div></li>
			<li><div style="background-color: red;"></div></li>
			<li><div style="background-color: orange;"></div></li>
			<li><div style="background-color: yellow;"></div></li>
			<li><div style="background-color: green;"></div></li>
			<li><div style="background-color: blue;"></div></li>
			<li><div style="background-color: purple;"></div></li>
		</ul>
	</nav>
</html>

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

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

相关文章

直播电商系统卷轴模式源码开发的发展前景

随着互联网技术的飞速发展和直播电商的日益兴起&#xff0c;直播电商系统已成为数字经济的重要组成部分。其中&#xff0c;卷轴模式作为一种结合了积分奖励和任务兑换机制的商业模式&#xff0c;正逐渐在直播电商领域崭露头角&#xff0c;并展现出广阔的发展前景。本文将从卷轴…

【腾讯云】AI驱动的数据库TDSQL-C如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

欢迎来到《小5讲堂》 这是《腾讯云》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启…

学工控必须知道的变频器字母符号

#变频器##变频器故障##伺服电机##电工##电工#工控人加入PLC工业自动化精英社群 工控人加入PLC工业自动化精英社群

windows软件应该安装在哪里

100%原创动力 文章目录 前言一、安装路径二、数据文件夹1.用户文件夹2.AppData 三、为什么需要管理员权限四、绿色软件 前言 windows软件应该安装在哪里 一、安装路径 windows系统安装软件应该安装在哪里&#xff0c;根据windows规范应该安装在某个盘的 Program Files 目录…

ICP备案办理的流程中股东附件不显示如何解决

ICP备案办理的流程中股东附件不显示如何解决 问题解决方案注意吐槽 问题 问题弹窗&#xff1a; 部分一级股东没有上传证照附件,请检查并上传。 问题内容&#xff1a; 在【股东追溯及其相关证明材料】这一页中无法保存&#xff0c;提示要上传证照附件&#xff0c;但这边找不到任…

dwg2text抽取dwg文件文字不完整分析

libdxfrw项目中dxf2text命令可以抽取dwg文件中的文字部分&#xff0c;编译完工程后对手头上的dwg文件提取时发现抽取不完整&#xff0c;对源码进行分析时发现该命令只处理了text部分&#xff0c;不处理mtext部分 bool dx_iface::printText(const std::string& fileI, dx_da…

Cross-Encoder实现文本匹配(重排序模型)

引言 前面几篇文章都是基于表示型的方法训练BERT进行文本匹配&#xff0c;而本文是以交互型的方法。具体来说&#xff0c;将待匹配的两个句子拼接成一个输入喂给BERT模型&#xff0c;最后让其输出一个相似性得分。 文本匹配系列文章先更新到此&#xff0c;目前为止都是基于监督…

AI大模型行业专题报告:大模型发展迈入爆发期,开启AI新纪元

大规模语言模型&#xff08;Large Language Models&#xff0c;LLM&#xff09;泛指具有超大规模参数或者经过超大规模数据训练所得到的语言模型。与传统语言模型相比&#xff0c;大语言模型的构建过程涉及到更为复杂的训练方法&#xff0c;进而展现出了强大的自然语言理解能力…

网络药理学:1、文章基本思路、推荐参考文献、推荐视频

文章基本思路 选择一味中药或者中药复方&#xff08;常见的都是选择一味中药&#xff0c;如&#xff1a;大黄、银柴胡等&#xff09;&#xff0c;同时选择一个要研究的疾病&#xff08;如食管癌等&#xff09;获得中药的主要化学成分或者说活性成分&#xff08;有时候也以化合…

一款专为网络专业人士设计的多功能扫描工具,支持主机存活探测、端口扫描、服务爆破、漏洞扫描等功能

前言 在网络维护和安全检测中&#xff0c;有效的工具对于提高-效率至关重要。传统的网络扫描工具往往功能单一&#xff0c;需要多个工具配合使用&#xff0c;这不仅增加了工作的复杂度&#xff0c;还可能因为工具间的兼容性问题导致工作效率下降。面对这样的挑战&#xff0c;我…

深度解析 | 二元Logistic回归模型(单因素筛查、软件操作及结果解读)

一、Logistic回归的类型 Logistic回归&#xff08;又称逻辑回归&#xff09;是一种广义的线性回归分析模型&#xff0c;用于研究分类型因变量与自变量之间影响关系。Logistic回归分析根据因变量的不同可分为二元Logistic回归、多分类Logistic回归&#xff0c;有序Logistic回归…

大牛直播SDK最经典的一句

搜索引擎搜大牛直播SDK&#xff0c;居然提示我搜“大牛直播SDK最经典的一句”&#xff0c;闲来无事&#xff0c;点开看看&#xff0c;AI智能问答&#xff0c;给出了答案&#xff1a; ‌大牛直播SDK最经典的一句是&#xff1a;"我们只做最擅长的部分,我们不做的,提供对接接…

《向量数据库指南》——解锁AI新篇章:高效处理非结构化数据的五大策略

在探讨如何有效处理非结构化数据这一AI发展的核心挑战时,我们首先需要深入理解非结构化数据的本质特性及其带来的技术难题,进而探讨当前技术生态中的不足与机遇,并提出一系列专业且可操作的解决方案。 非结构化数据的四大挑战 1. 数量庞大: 非结构化数据,如文本、图像、…

图为科技基于昇腾AI,打造智慧工厂检测解决方案

中国作为全球制造业的翘楚&#xff0c;在工业领域成就斐然。因工业生产的特殊环境与工艺要求&#xff0c;面临着高温、高压、易燃易爆等多重高危因素。 其生产装置通常大型化且密集&#xff0c;生产工艺复杂&#xff0c;生产过程紧密耦合。在这样的背景下&#xff0c;围绕“人…

springboot汽车租赁系统-计算机毕业设计源码65876

目录 第 1 章 引 言 1.1 选题背景 1.2 研究现状 1.3 论文结构安排 第 2 章 系统的需求分析 2.1 系统可行性分析 2.1.1 技术方面可行性分析 2.1.2 经济方面可行性分析 2.1.3 法律方面可行性分析 2.1.4 操作方面可行性分析 2.2 系统功能需求分析 2.3 系统性需求分析 …

金智维K-RPA基本介绍

一、K-RPA基本组成 K-RPA软件机器人管理系统基于“RPAX”数字化技术打造&#xff0c;其核心系统由管理中心(Server)、设计器(Control)、机器人(Robot/Agent)三大子系统组成&#xff0c;各子系统协同工作&#xff0c;易于构建协同式环境。 管理中心&#xff08;Server&#xff…

测试人员必备的linux命令(已分组)

文件与目录管理 查看当前目录&#xff1a;pwd 列出目录内容&#xff1a;ls [-l] &#xff08;-l 参数显示详细信息&#xff09; 切换目录&#xff1a;cd [目录名] 创建目录&#xff1a;mkdir [-p] 目录名 &#xff08;-p 可以递归创建目录&#xff09; 删除空目录&#xf…

NVDLA专题14:Runtime environment-用户模式驱动

运行时环境&#xff08;runtime environment&#xff09;包括在兼容的NVDLA硬件上运行编译神经网络的软件。 它由两部分组成: 用户模式驱动&#xff08;User Mode Driver, UMD&#xff09;: 这是应用程序的主接口&#xff0c;正如Compile library中所详述的&#xff0c;对神经…

数据看板多端查看无压力,教你轻松设置响应式布局

最近&#xff0c;山海鲸可视化新增了一个非常实用的功能&#xff0c;叫作“响应式布局”。今天我来为大家介绍一下这个新功能以及它如何提升我们在不同设备上的使用体验。 你可能在用手机浏览网页时注意到&#xff0c;有些网站在手机和电脑上的显示方式几乎相同。然而&#xff…

讯方·智汇云校北京校区

讯方智汇云校北京校区介绍 讯方技术紧抓国家数智化转型契机&#xff0c;依托京西智谷&#xff0c;建立AI智算产业人才能力中心&#xff0c;提供智算全流程服务和智算人才培养。研发了讯方AI场景创新工坊、讯方AI行业支撑智能体等核心产品&#xff0c;同时导入华为全系列智算人…