translate(x,y) 定义 2D 转换。
scale(x,y) 定义 2D 缩放转换
rotate(angle) 定义 2D 旋转,在参数中规定角度。css
translate定义元素在空间中的移动。对于x方向来讲,向右移动,取值为正,对于y方向来讲,向下移动为正值。
scale定义元素在空间中的缩放比例。默认是基于元素的中心为来缩放。
rotate定义元素在空间中的旋转。之前初中学课本中把逆时针旋转造成的角度叫作正角,把顺时针旋转的角度叫作负角。可是在css变换中,x轴的方向是从左到右的,y轴的方向是从上到下,与课本中的坐标方向相反,因此旋转角度的正负定义与之前学过的定义正好相反即顺时针为正,逆时针为负。css3
animation-name
animation-duration
animation-timing-function
animation-delay
animation-iteration-count
animation-direction
animation-fill-modeweb
animation-fill-mode
该属性主要用来设置动画在开始(设置延迟属性的状况下)和结束的状态下须要显示的效果。ide
none:动画完成以后回到动画没开始时的状态。
forwards:当动画完成时,元素的样式将保持keyframes最后一个关键帧中定义的样式。
backwards:在 animation-delay属性所指定的时间内,元素的样式将设置为keyframes中设置的第一帧的样式。
both:同时设置了forwards和backwards属性。即在动画等待的时间内,元素的样式为keyframes设置的第一帧的样式,动画结束时,元素的样式将保持最后一帧的样式。函数
元素的透明度逐渐变化,同时位置也在不断变化。以从左边飞入为例:工具
div{ width: 100px; height: 100px; margin:80px 0 0 200px; background-color: #4993c8; animation: fadeInLeft 1000ms ease 5000ms both ; } @keyframes fadeInLeft { 0% { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } 100% { opacity: 1; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } }
元素进入页面后,在元素位置附近作振幅较小的晃动。以从左边进入为例:动画
div{ width: 100px; height: 100px; margin:80px 0 0 200px; background-color: #4993c8; animation: fadeInLeft 1000ms ease 5000ms both ; } @keyframes slideRight { 0% { opacity: 0; -webkit-transform: translateX(-150%); transform: translateX(-150%); } 50% { opacity: 1; -webkit-transform: translateX(8%); transform: translateX(8%); } 65% { -webkit-transform: translateX(-4%); transform: translateX(-4%); } 80% { -webkit-transform: translateX(4%); transform: translateX(4%); } 95% { -webkit-transform: translateX(-2%); transform: translateX(-2%); } 100% { -webkit-transform: translateX(0%); transform: translateX(0%); } }
透明度逐渐变化,尺寸先变大后变小,最后恢复正常尺寸
一、透明度变化
二、基于原来的尺寸缩放网站
div{ width: 100px; height: 100px; margin:80px 0 0 200px; background-color: #4993c8; animation: fadeInLeft 1000ms ease 5000ms both ; } @keyframes fadeIn { 0% { -webkit-transform: scale(0) translateZ(0); transform: scale(0) translateZ(0); opacity: 0; } 60% { -webkit-transform: scale(1.1) translateZ(0); transform: scale(1.1) translateZ(0); opacity: 1; } 80% { -webkit-transform: scale(0.9) translateZ(0); transform: scale(0.9) translateZ(0); opacity: 1; } 100% { -webkit-transform: scale(1) translateZ(0); transform: scale(1) translateZ(0); opacity: 1; } }
一、旋转。顺时针旋转须要设置初始的旋转角度为负值,反之亦然。
二、透明度发生变化url
div{ width: 100px; height: 100px; margin:80px 0 0 200px; background-color: #4993c8; animation: rotateIn 1000ms ease 5000ms both ; } @-webkit-keyframes rotateIn { from { opacity: 0; -webkit-transform: rotate(-200deg); transform: rotate(-200deg); } to { opacity: 1; -webkit-transform: rotate(0deg); transform: rotate(0deg); } } // 能够经过transform-origin属性来设置旋转元素的基点位置
主要经过animation的animation-iteration-count属性来规定动画无限次播放3d
思路1:设置动画移动的起始位置和终点位置,同时设置animation的animation-direction属性为alternate,轮流反向播放动画。
思路2:动画运动分红3个关键点,起始位置、50%位置和100%位置,100%时间点的位置与开始位置相同,不用设置animation的nimation-direction属性
.arrow{ position: absolute; left: 50%; bottom: 20px; margin-left: -20px; width: 40px; height: 24px; background: url('../images/arrow.png') 0 0 no-repeat; background-size: 100% 100%; z-index: 999; animation:arrowing1 1000ms ease-in-out infinite alternate; // animation:arrowing2 1000ms ease-in-out infinite; } @keyframes arrowing1 { 0% { -webkit-transform: translateZ(0); transform: translateZ(0); } 100% { -webkit-transform:translate3d(0,20px,0); transform:translate3d(0,20px,0); } } @keyframes arrowing2 { 0% { -webkit-transform: translateY(-5px); transform: translateY(-5px); } 50% { -webkit-transform: translateY(10px); transform: translateY(10px); opacity: 1 } 100% { -webkit-transform: translateY(-5px); transform: translateY(-5px) } }