H5新特性 - CSS动画2D / 3D 、自定义动画 及 动画库

CSS动画2D / 3D 及动画库 自定义动画 及 动画库

一个元素只有一个transform属性;后面增加的transform属性会覆盖前面的属性
执行元素,添加过渡效果

transition:all,2s;

添加hover, hover中写动画效果

	div{
		width: 100px;
        height: 100px;
		background: red;
		margin-top: 20px;
		text-align: center;
		line-height: 100px;

        /*过渡*/
        transition: all 2s;
    }

	div:hover{
       transform: rotateZ(190deg) scale(2,2);
            
    }
    
CSS动画2D
  • 旋转 单位是 度 deg
    <div style="transform: rotateZ(-30deg)">旋转</div>
  • 位移 单位是 像素 px
    <div style="transform: translateX(150px)">位移</div>
  • 缩放
    正常比例是 1
    大于1 为放大
    小于1 为缩小
    没有单位
    <div style="transform: scale(1.5,1.5)">缩放</div>
  • 倾斜 单位是 度
    <div style="transform: skewX(45deg)">倾斜X</div>
    <div style="transform: skewY(45deg)">倾斜Y</div>
    <br><br>
    <div style="transform: skew(30deg,30deg)">倾斜</div>
  • 文字反倾斜的方式
    没有实际意义上的反倾斜,只是倾斜相反的角度
    <div style="transform: skewX(45deg)">
        <p style="transform: skewX(-45deg)">倾斜</p>
    </div>
CSS动画3D

3D动画实际上,是在2D动画的基础上开启属性
transform-style: preserve-3d;(开启3D)
perspective: 400px;(景深)

  • 自定义旋转中心
    transform-origin: left;
	.xc{
		position: absolute;
		left: 400px;
		top: 500px;
		margin-bottom: 20px;
		transform-style: preserve-3d;
		perspective: 400px;
	}
	.xc-bottom{
		position: absolute;
		text-align: center;
		line-height: 150px;
		color: #EF4153;
	}
	.xc-left{
		position: absolute;
		width: 75px;
		background-color: #EF4153;
		transform-origin: left;
		transition: all 1s;
	}
	.xc-right{
		position: absolute;
		width: 75px;
		left: 75px;
		background-color: #EF4153;
		transform-origin: right;
		transition: all 1s;		
	}
	.xc:hover>.xc-left{
		transform: rotateY(-180deg);
	}
	.xc:hover>.xc-right{
		transform: rotateY(180deg);				
	}
	
	<div class="xc">
		<div class="xc-bottom">你瞅啥</div>
		<div class="xc-left"></div>
		<div class="xc-right"></div>		
	</div>
	
自定义动画

自定义动画(也叫关键帧动画): 其中,制作动画和绑定动画两个过程缺一不可

  • 备注:
    1) 衣服可以制作很多件
    2) 同一件衣服也可以给多个人穿
制作动画 (做衣服)

@keyframes 声明自定义动画的关键词 后面需要写自定义动画的名称,空格间隔
from{ } 相当于 0%
to{ } 相当于 100%

    @keyframes myAnimation{
    	0%{}
    	25%{
			transform: translateX(400px);
    	}
    	50%{
        	transform: translate(400px,400px);
    	}
   	 	75%{
        	transform: translate(0px,400px);
    	}
    	100%{
        	transform: translate(-200px,600px);
     	}
    }
    
绑定动画 (穿衣服)

绑定动画 (穿衣服)

  • animation 属性是一个简写属性,用于设置六个动画属性:

    • animation-name :动画名称 必填
    • animation-duration: 动画执行所需的时间 必填
    • animation-timing-function: 动画执行的速度曲线 可选 默认值 ease
    • animation-delay:动画开始之前的延迟 可选 默认值 0s
    • animation-iteration-count : 动画执行的次数 可选 默认值1 没有单位 infinite:无限次
    • animation-direction: 规定是否轮流反向播放 (注意:播放次数至少为2) 可选 默认不反向,alternate:反向播放
  • 注意:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了

	.ball{
	    animation: myAnimation 3s ease-in-out 4s infinite alternate;
	}

示例:

	<style type="text/css">
		*{
			margin: 0px;
			padding: 0px;
		}
		.all{
			width: 500px;
			height: 400px;
			border: 1px solid ;
			position: relative;
			top: 100px;
			left: 400px;
		}
		.ball1{
			width: 100px;
			height: 100px;
			border-radius: 50%;
			background-color: #F59646;
			position: absolute;
			animation: move 6s ease 1s infinite alternate;
		}
		.ball2{
			width: 100px;
			height: 100px;
			border-radius: 50%;
			background-color: #FF1919;
			position: absolute;
			animation: move 6s ease 4s infinite alternate;
		}
		@keyframes move{
			0%{}
			25%{
				transform: translateX(400px);
			}
			50%{
				transform: translate(400px,300px);
			}
			75%{
				transform: translate(0px,300px);
			}
		}	
	</style>
	
	<div class="all">
		<div class="ball1"></div>
		<div class="ball2"></div>
	</div>
	
动画库
  • 引入动画库
    实际的代码根据自己的文件 animate.min.css 位置确定
	<link rel="stylesheet" type="text/css" href="动画库/animate.min.css"/>

需要自定义动画库的动画使用时:

	// 自定义的参数 样式
	.cover1{
	
	}
	// 修改的是动画的总时间 延迟时间
	.animated{
		animation: filp 1s linear 7s 1;
	}
	
	// 需要替换的动画效果名称
	.flip{
	}
	<div class="cover1 flip animated"> </div>
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值