HTML---利用CSS3制作网页动画

文章目录

  • 目录

    文章目录

    本章目标

     一.CSS3概述

    CSS函数概述

    二.CSS3变形

    transform属性

    translate():平移函数

     scale():缩放函数

    rotate():旋转函数

     skew():倾斜函数

    三.CSS3过渡 

    四.CSS动画 

    练习

    旋转按钮


本章目标

  • 会使用transfoem 2D 变形设置网页元元素
  • 会使用transition制作过渡动画
  • 会使用animation制作网页动画

 一.CSS3概述

   CSS3是HTML的样式语言,它用于描述和控制HTML文档的外观和布局。CSS3是CSS的最新版本,引入了一些新的特性和模块,以增强样式表的功能和灵活性。

CSS函数概述

CSS函数是一种用于处理CSS属性值的特殊函数。它们可以接受特定的指令(输入参数),并执行指令的相应动作,并返回执行结果,然后将该结果用作CSS属性的值。

函数名(参数1, 参数2, ...)

函数名称:函数的名称用于识别和调用特定的函数。例如,rgb()是一个用于设置颜色的函数。

参数:函数接受一个或多个参数,用于指定函数执行时的数据。参数可以是固定值(如数字或字符串),也可以是变量或其他表达式。参数之间用逗号分隔。

返回值:函数的执行结果可以作为值返回。返回值可以是一个具体的值(如颜色值或长度值),也可以是一个变量。

二.CSS3变形

transform属性

  • CSS3变形是一些效果的集合,如平移,旋转,缩放,倾斜效果。
  • 每个效果都可以称为变形(transform),可以分别操控元素发生平移,旋转,缩放,倾斜等变化。

语法:

transform:[变形函数] *;

 变形函数:

312b76146a5c47aaaf3cb7a41c5c0ac8.png

  •  演示案例:
  • <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<style type="text/css">
    			li{
    				list-style: none;
    				float: left;
    				width: 80px;
    				line-height: 40px;
    				background-color: orange;
    				border-radius: 6px;
    				font-size: 16px;
    				margin-left: 3px;
    			}
    			li a{
    				text-decoration: none;/**去除下划线**/
    				color: #fff;
    				display: block;/**将行元素改变为块元素从而设置高度**/
    				text-align: center;
    				height: 40px;
    			}
    			li a:hover{
    				background-color: rgba(242, 88, 6, 0.87);
    				border-radius: 6px;
    			}
    		</style>
    	</head>
    	<body>
    		 <ul>
    		    <li><a href="#">服装城</a></li>
    		    <li><a href="#">美妆馆</a></li>
    		    <li><a href="#">超市</a></li>
    		    <li><a href="#">全球购</a></li>
    		    <li><a href="#">闪购</a></li>
    		    <li><a href="#">团购</a></li>
    		    <li><a href="#">拍卖</a></li>
    		    <li><a href="#">金融</a></li>
    		</ul>
    	</body>
    </html>

    9f9b028f112943759ab68c51e6ab2bbc.png

translate():平移函数

语法:

  • 正号:右,下/ 负号:左,上
li a:hover{ /**正号:右,下 负号:左,上**/
			transform: translate(4px,4px);
			}

dff0bce0e2d646f5835d322f1e333e53.png

设置平移函数后点击图标后图标向右下方发生平移,效果如上图。

 scale():缩放函数

语法:

  • 正号:放大/ 负号:缩小
li a:hover{ /**正号:放大 负号:缩小**/
			transform: scale(2);
			}

b5d4bba968c347169f6ea5bea5dd53eb.png

 设置缩放函数后点击图标后图标放大2倍,如上图所示。

rotate():旋转函数

语法:

<style type="text/css">
			img:hover{transform: rotate(-90deg);}
</style>

 演示案例:

e3d32a8ee0b34d7892b694a21dbcefd4.png

 设置旋转函数后点击图片后,图片逆时针旋转90°。效果如下图。

e3e2b3d6c3f74b7abbf7184300ef13b4.png

 skew():倾斜函数

 语法:

li a:hover{
			transform: skew(40deg,0deg);
            }

1988ba2c6e1946e796dceb4d2e5292cc.png

 设置倾斜函数后点击图标后图标倾斜,效果如上图所示。

三.CSS3过渡 

transition

  • transition呈现的是一种过渡,是一种动画转换的过程,如渐现、渐弱、动画快慢等
  • CSS3 transition的过渡功能更像是一种“黄油”,通过一些CSS的简单动作触发样式平滑过渡

 

08e5bf53924141ada96b2a715888f9b1.png

  •  函数

0d134689465142d396aebb3a8b750571.png

9c4b951ae0054109b09fb9a467538b76.png

4e2899f0a0a8461790c68123e6628c65.png

00cefc572f0a4f78bd24989d8897267e.png

 触发机制:

30d0d4e0128d40d38d705576be6c67e2.png

 演示案例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div{
				width: 500px;
				height: 31.25rem;
				background-color: blue;
				/**针对背景颜色设置过渡动画效果**/
				transition: background-color 4s ease-in-out 5s ;
			}/**引入过渡动画效果**/
			div:hover{background-color: red;}
		</style>
	</head>
	<body>
		<div></div>
	</body>
</html>

上述代码执行后,边框背景颜色将由蓝色经过5s延迟,最终经过执行时间4s后变为红色。 

四.CSS动画 

调用关键帧
动画名称关键帧 帧名
动画播放状态设置动画重新播放或暂停
动画方式动画实实现的方式(参考过渡动画)
动画开始前/结束后的操作设置动画开始/结束后执行的操作
动画播放方向设置动画正序或倒序播放

 演示案例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div{
				width: 200px;height: 200px; background-color: aquamarine;
				/**调用关键帧**/
				animation: sp1 3s linear infinite;
			}
			/**创建动画关键帧**/
			@keyframes sp1{
				0%{transform: translate(100px,0px);}
				50%{transform: translate(300px,0px);}
				100%{transform: translate(100px,100px);}
			}
		</style>
	</head>
	<body>
		<div></div>
	</body>
</html>

执行后,网页中的框图将从左👉右👉左下👉回到起点。

tupia


练习

9f8392df85c4402fba2f160aa5a80511.png

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
            /**使用结构伪类选择器选中所有偶数子元素 even:偶数的集合**/
			div img:nth-child(even){
				width: 200px;
			}
			div img:nth-child(odd){
				width: 300px;
			}
			.box{
				width: 960px;
				margin: 200px auto;/**盒子居中**/
				position: relative;
			}
			.box img{
				border: 1px solid #ddd;
				padding: 10px;
        /**针对所有img设置绝对定位,使用img浮动**/
				position: absolute;
				background: #fff;
				z-index: 1;
				transition: all 0.5s ease-in-out; 
			}
			.box img:nth-child(1){/**针对浮动后的img单独设置偏移量**/
			    top: 0px;
			    left: 300px;
			    transform: rotate(-15deg);/**旋转函数**/
			}
	        .box img:nth-child(2) {
	            top:-50px;
	            left: 600px;
	            transform: rotate(-20deg);
	        }
	
	        .box img:nth-child(3) {
	            bottom: 0;
	            right: 0;
	            transform: rotate(15deg);
	        }
	
	        .box img:nth-child(4) {
	            bottom: 0;
	            left: 400px;
	            transform: rotate(-20deg);
	        }
	
	        .box img:nth-child(5) {
	            bottom: 0;
	            left: 0;
	            transform: rotate(-30deg);
	        }
	
	        .box img:nth-child(6) {
	            top: 0;
	            left: 0;
	            transform: rotate(20deg);
	        }
	
	        .box img:nth-child(7) {
	            top: 0;
	            left: 700px;
	            transform: rotate(20deg);
	        }
	
	        .box img:nth-child(8) {
	            bottom: -20px;
	            right: 500px;
	            transform: rotate(30deg);
	        }
	
	        .box img:nth-child(9) {
	            top: 90px;
	            left: 550px;
	            transform: rotate(15deg);
	        }
	
	        .box img:nth-child(10) {
	            left: 180px;
	            top: 20px;
	            transform: rotate(-10deg);
	        }	
			.box img:hover{/**设置鼠标选中后的样式**/
               /**设置堆叠的优先级:鼠标点击后优先展示**/
				z-index: 2;
				box-shadow: 5px 5px 5px #ddd;
                /**针对所有的img设置动画样式**/
				transform: rotate(0deg) scale(1.5); 
			}	
		</style>
	</head>
	<body>
		<div class="box" id="box">
		    <img src="image/1.jpg" alt=""/>
		    <img src="image/2.jpg" alt=""/>
		    <img src="image/3.jpg" alt=""/>
		    <img src="image/4.jpg" alt=""/>
		    <img src="image/5.jpg" alt=""/>
		    <img src="image/6.jpg" alt=""/>
		    <img src="image/7.jpg" alt=""/>
		    <img src="image/8.jpg" alt=""/>
		    <img src="image/9.jpg" alt=""/>
		    <img src="image/10.jpg" alt=""/>
		</div>
	</body>
</html>

旋转按钮

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			div{
				width: 200px; height: 200px;
				border: 5px solid white;margin: 200px auto;
				border-radius: 200px;
				overflow: hidden;
				transition:transform 4s ease-in-out 4s;
			}
			div:hover{transform: scale(2) rotate(270deg);}
		</style>
	</head>
	<body>
		<div>
			<img src="index1.png" width="200px" height="200px">
		</div>
	</body>
</html>


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			*{/*针对所有元素设置内外边距*/
				padding: 0px;
				margin: 0px;
			}
			body{
				padding :20px 0px 0px;
			}
			li{/*去除无序列表样式:去除列表前的点号*/
				list-style: none;
			}
			#father{
				width: 665px;
				margin: 0px auto;
				font-size: 12px;
				border: 1px solid #CCCCCC;
			}
			#father:after{/**使用after伪类防止父级边框塌陷**/
				content: '';
				display: block;
				clear: both;
			}
			#left{
				float: left;
				width: 223px;
			}			
			#left h3{/*使用结构伪类选择器针对 left边框中所有h3标签设置样式*/
				font-size: 14px;
				color: #4b4b4b;
				margin: 40px 0px 0px 20px;
			}
			#left p{
				margin: 20px 0px 0px 20px;
			}
			#left img{
				margin: 60px 0px 20px 40px;
			}
			#right{
				float: left;
				width: 440px;
			}
			#right li{
				float: left;
				width: 218px;
				height: 150px;
				border-bottom: 1px solid #CCCCCC;
				border-left: 1px solid #CCCCCC;
			}
			.text{
				float: left;
			}
			.text h3{
				font-size: 14px;
				color: #4b4b4b;
				margin: 20px 0px 0px 20px;
			}
			.text p{
				margin: 10px 0px 0px 20px;
			}
			.img{
				float: right;
				margin-top: 30px;
				transition: all 1s ease-in-out ;
			}
			.img:hover{
				transform: translate(-12px,0px);
			}
		</style>
	</head>
	<body>
		<div id="father">
			<div id="left">
				<h3>超级信用卡</h3>
				<p>线上线下课累计彩贝积分</p>
				<img src="1.bmp"/>
			</div>
			<div id="right">
				<ul>
					<li>
						<div class="text">
							<h3>彩贝抢霸</h3>
							<p>每天10点更新</p>
						</div>
						<div class="img">
							<img src="2.bmp"/>
						</div>
					</li>
					<li>
						<div class="text">
							<h3>热门优惠券</h3>
							<p>全场免费领取</p>
						</div>
						<div class="img">
							<img src="3.bmp"/>
						</div>
					</li>
					<li>
						<div class="text">
							<h3>促销活动</h3>
							<p>汇集全网优惠</p>
						</div>
						<div class="img">
							<img src="4.bmp"/>
						</div>
					</li>
					<li>
						<div class="text">
							<h3>精挑细选</h3>
							<p>给你最好的选择</p>
						</div>
						<div class="img">
							<img src="5.bmp"/>
						</div>
					</li>
				</ul>
			</div>
		</div>
	</body>
</html>

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

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

相关文章

AJAX: 整理2:学习原生的AJAX,这边借助express框架

1. npm install express 终端直接安装 2. 测试案例&#xff1a;Hello World&#xff01; 新建一个express.js的文件&#xff0c;写入下方的内容 // 1. 引入express const express require(express)// 2. 创建服务器 const app express()// 3.创建路由规则 // request 是对请…

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题)

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 第一部分&#xff1a;数据安全防护(30%) 第二部分&#xff1a;数据安全管理(30%) 第三部分&#xff1a;数据安全处置(40%) 项目介绍…

Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python)

Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python) 文章目录 Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python)Introduction 导言Iterable VS Iterator为什么 Python 有这种特殊的设计special design?如何获取迭代器Iterator&#xff1f…

SpringCloud 和 Linux 八股文第三期五问五答

SpringCloud 和 Linux 八股文第三期五问五答 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;Linux常用命令 2&#xff09;如何查看测试项目的日志 一…

Docker (compose、安装、常用命令整理、compose编排) -day06

一、概念 Docker-Compose就是容器编排&#xff0c;负责实现对Docker容器集群的快速编排 Compose允许用户通过一个单独的docker-compose.yml模板文件&#xff08;YAML 格式&#xff09;来定义一组相关联的应用容器为一个项目&#xff08;project&#xff09;。 可以很容易地用一…

Python数值型字符串校验

从键盘输入一行字符串&#xff0c;编写Python代码判定字符串是python“合法”数值。 (笔记模板由python脚本于2023年12月25日 18:00:52创建&#xff0c;本篇笔记适合熟悉Python符串基本数据类型的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.py…

2023年终总结 —— 我和CSDN相遇的第一年之“技术学习和个人成长的回顾与展望”

​ ​ &#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 &#x1f38a;对2023的总结与回顾&#x1f38a; &#x1f3c5;获奖记录 &#x1f4da;学…

1、gdb基本功能

文章目录 1、gdb1.1、运行1.1.1、程序入参 1.2、断点及观察点1.2.1、设置断点1.2.2、禁用、删除断点1.2.3、观察点 1.3、打印1.3.1、设定打印参数1.3.2、打印数据1.3.3、自动打印1.3.4、按照地址打印 linux下我现在接触到的常用调试工具如下. gbdgdbguicmake-tools gdb是最为通…

SLAM学习入门--传统图像处理

文章目录 传统图像处理颜色空间高斯滤波腐蚀和膨胀开运算和闭运算如何求一张图片的均值&#xff1f;线性插值双线性插值仿射变换透视变换常见的边缘检测算子Sobel 算法Canny 算法Hough 变换原理&#xff08;直线和圆检测&#xff09;找轮廓&#xff08;findCountours&#xff0…

【网络安全 | Misc】Aesop_secret(ISCC)

正文 动态gif&#xff0c;使用工具进行分解&#xff1a; https://tu.sioe.cn/gj/fenjie/ 得到ISCC字样 由Winhex看到密文&#xff1a; U2FsdGVkX19QwGkcgD0fTjZxgijRzQOGbCWALh4sRDec2w6xsY/ux53Vuj/AMZBDJ87qyZL5kAf1fmAH4Oe13Iu435bfRBuZgHpnRjTBn5xsDHONiR3t0Oa8yG/tOKJMN…

故障诊断模型 | Maltab实现PSO-BP粒子群算法优化BP神经网络的故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现PSO-BP粒子群算法优化BP神经网络的故障诊断 模型描述 在机器学习领域,我们常常需要通过训练数据来学习一个函数模型,以便在未知的数据上进行预测或分类。传统的神经网络模型需…

【大模型的前世今生】从自然语言处理说起

自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;被誉为人工智能皇冠上的明珠&#xff0c;是计算机科学和人工智能领域的一个重要方向。它主要研究人与计算机之间&#xff0c;使用自然语言进行有效通信的各种理论和方法。简单来说&#xf…

基于 CefSharp 实现一个文件小工具

I’m not saying you can’t be financially successful I’m saying have a greater purpose in life well beyond the pursuit of financial success Your soul is screaming for you to answer your true calling You can change today if you redefine what success is to …

网络安全—认证技术

文章目录 加密认证对称密钥体制公钥密码体制公钥的加密公钥身份认证和加密 鉴别码认证MAC鉴别码 报文摘要认证认证 加密只认证数字签名 通过了解以前前辈们使用的消息认证慢慢渐进到现代的完整的认证体系。所以在学习的时候也很蒙圈&#xff0c;因为前期的很多技术都是有很严重…

matplotlib单变量和双变量可视化

使用seaborn 库的tips数据集&#xff0c;其中包含了某餐厅服务员收集的顾客付小费的相关数据&#xff08;评论区&#xff09; 单变量可视化 直方图 直方图是观察单个变量最常用的方法。这些值是经过"装箱"&#xff08;bin&#xff09;处理的 直方图会将数据分组后绘…

Vlan的封装模式和端口讲解(Access、Trunk、Hypbrid端口)

目录 Vlan的封装模式 ISL协议 802.1Q协议 二层接口类型 Access接口 Trunk接口 Hybrid接口 不同Vlan之间的通信 Vlan的作用&#xff08;Vlan工作于OSI参考模型的第二层&#xff09; Vlan&#xff08;Virtual Local Area Network&#xff09;虚拟局域网&#xff0c;将一个…

格密码基础:子格,q-ary垂直格与线性代数

目录 一.写在前面 二.子空间垂直 2.1 理论解释 2.2 举例分析 三. 零空间 3.1 零空间与q-ary垂直格 3.2 零空间与行/列空间 四. 格密码相关 一.写在前面 格密码中的很多基础原语都来自于线性代数的基本概念&#xff0c;比如举几个例子&#xff1a; 格密码中的非满秩格…

年底离职了?2024普通人失业怎么创业?2024创业风口!

有多少人会在12月份离职&#xff1f;这是近期热门的话题&#xff0c;年底了&#xff0c;离职潮也来了。是工作压力大?是跟同事相处不好&#xff1f;是公司发展没前景&#xff1f;不&#xff0c;统统都不是。离职无外乎一个原因&#xff1a;工资低&#xff01; 我们除了打工还…

Mybatis 事务接口

当我们从数据源中得到一个可用的数据库连接之后&#xff0c;就可以开启一个数据库事务了&#xff0c;事务成功开启之后&#xff0c;我们才能修改数据库中的数据。 在修改完成之后&#xff0c;我们需要提交事务&#xff0c;完成整个事务内的全部修改操作&#xff0c;如果修改过…