首页 前端知识 CSS样式变换效果及动画

CSS样式变换效果及动画

2024-02-23 11:02:51 前端知识 前端哥 724 755 我要收藏

笔记总结

  • CSS的变换效果

    • transform 2d转换

      • translate()进行平移效果,有2个参数对应X、Y轴。

      • scale()用于缩放标签,当参数只有一个时,整体放大和缩小,当参数是两个时,可以分别调整x、y轴的缩放倍数。

      • rotate()用于旋转元素。rotateX() rotateY() rotateZ() 分别绕着xyz轴旋转

      • skew()有两个参数分别代表在x轴方向的扭曲程度,以及在y轴方向的扭曲程度。

      • matrix()把所有2D转换方法组合在一起。matrix()方法需要六个参数,包含数学函数,允许你:旋转、缩放、移动以及倾斜。

    • trabsform 3d转换

      • Perspective:同来控制视距的属性,属性值事指距离屏幕的像素值。(例Perpective:800px)
      • transform-style:用来transform的显示效果,有平面模式(fiat),3d模式(preserve-3d)
      • transform-origin:用来控制旋转轴的位置
  • 过渡效果

    transition:默认是所有属性都进行过渡,参数列表(name|duration|delay)。

    transition支持部分属性过渡,例如你可以指定宽高属性拥有过渡属性,这时其他属性将不再支持过渡。

  • 动画效果

    @keyframes用来设置动画效果,可以使用from和to定义开始动画和结束动画,也可以使用百分比控制整个动画的节奏

作业

实现代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>图片魔方</title>
	</head>
	<style>
		body {
			perspective: 800px;
		}
		@keyframes myAnimation{
			from{
				transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
			}
			to{
				transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg);
			}
		}

		.con {
			width: 200px;
			height: 200px;
			margin: 300px auto;
			position: relative;
			border: 1px solid red;
			transform-style: preserve-3d;
			transform: rotateX(30deg) rotateY(30deg);
			animation: myAnimation 10s infinite linear;
		}

		.con>img {
			width: 200px;
			height: 200px;
			position: absolute;

		}
		
		.con:hover > img:first-child{
			transform: translateZ(-200px);
		}
		
		.con > img:first-child{
			transform: translateZ(200px);
		}
		
		.con:hover > img:nth-child(2){
			transform: translateX(-200px) rotateY(90deg);
			
		}

		.con>img:nth-child(2) {
			left: -200px;
			transform: rotateY(90deg);
			transform-origin: right;
		}
		
		.con:hover>img:nth-child(3) {
			transform: translateX(200px) rotateY(-90deg);
		}

		.con>img:nth-child(3) {
			right: -200px;
			transform-origin: left;
			transform: rotateY(-90deg);
		}
		
		.con:hover>img:nth-child(4) {
			transform: translateY(-200px) rotateX(-90deg);
		}
		

		.con>img:nth-child(4) {
			top: -200px;
			transform-origin: bottom;
			transform: rotateX(-90deg);
			/* 			transform-origin:left;
			transform: rotateY(-90deg); */
		}
		
		.con:hover>img:nth-child(5) {
			transform: translateY(200px) rotateX(90deg);
		}

		.con>img:nth-child(5) {
			bottom: -200px;
			transform-origin: top;
			transform: rotateX(90deg);
		}
		
		.con:hover>img:last-child {
			transform: translateZ(400px);
		}

		.con>img:last-child {
			transform: translateZ(200px);
		}
	</style>
	<body>
		<div class="con">
			<img src="./1.png" alt="">
			<img src="./2.png" alt="">
			<img src="./3.png" alt="">
			<img src="./衣服.png" alt="">
			<img src="./5.jpg" alt="">
			<img src="./6.jpg" alt="">
		</div>
	</body>
</html>

效果如下
在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/2573.html
标签
css动画
评论
发布的文章

程序员的中秋节

2024-03-09 09:03:01

js中几种追加元素的方法

2024-03-08 10:03:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!