CSS变形
每个效果都可以称为变形(transform) 操控元素发生平移、旋转、缩放、倾斜等变化 语法: transform: none | transform-functions; 变形函数 translate():平移函数,基于X、Y坐标重新定位元素的位置 scale():缩放函数,可以使任意元素对象尺寸发生变化 rotate():旋转函数,取值是一个度数值 skew():倾斜函数,取值是一个度数值
使用CSS3中的2D变形分别可以操作元素的哪些效果?
2D变形 2D位移 --- translate 语法: translate(tx,ty); // X轴(横坐标)移动的向量长度 Y轴(纵坐标)移动的向量长度 一个方向上的偏移 translateX(tx) 表示只设置X轴的位移 transform:translate(100px,0) <-----> transform:translateX(100px) translateY(ty) 表示只设置Y轴的位移 transform:translate(0,100px) <-----> transform:translateY(100px) 2D缩放 --- scale 语法: scale(sx,sy); // 横向坐标(宽度)方向的缩放量 纵轴坐标(高度)方向的缩放量 scale()函数可以只接收一个值,也可以接收两个值,只有一个值时,第二个值默认和第一个值相等 scaleX(sx):表示只设置X轴的缩放 transform:scale(2,0) <-----> transform:scaleX(2) scaleY(sy):表示只设置Y轴的缩放 transform:scale(0,2) <-----> transform:scaleY(2) 2D倾斜 --- skew 语法: skew(ax, ay); // 水平方向(X轴)的倾斜角度 垂直方向(Y轴)的倾斜角度 可以仅设置沿着X轴或Y轴方向倾斜 skewX(ax):表示只设置X轴的倾斜 skewY(ay):表示只设置Y轴的倾斜 2D旋转 --- rotate 语法: rotate(a); 参数a单位使用deg表示 参数a取正值时元素相对原来中心顺时针旋转
CSS3过渡 元素从一种样式逐渐改变为另一种样式的效果 语法: transition:[transition-property transition-duration transition-timing-function transition-delay ] // 过渡或动态模拟的CSS属性 完成过渡所需要的时间 指定过渡函数 过渡开始出现的延迟时间 过渡属性的使用 过渡属性( transition-property ) 定义转换动画的CSS属性名称 property:指定的CSS属性(width、height、background-color属性等) all:指定所有元素支持transition-property属性的样式,一般为了方便都会使用all none:没有属性会获得过渡效果 过渡所需的时间( transition-duration ) 定义转换动画的时间长度,即从设置旧属性到换新属性所花费的时间,单位为秒(s) 过渡动画函数( transition-timing-function ) 指定浏览器的过渡速度,以及过渡期间的操作进展情况 通过给过渡添加一个函数来指定动画的快慢方式 ease:速度由快到慢(默认值) linear:速度恒速(匀速运动) ease-in:速度越来越快(渐显效果) ease-out:速度越来越慢(渐隐效果) ease-in-out:速度先加速再减速(渐显渐隐效果) 过渡延迟时间( transition-delay ) 指定一个动画开始执行的时间,改变元素属性值后、开始执行动画前的用时 单位秒或者毫秒 正值:元素过渡效果不会立即触发,当过了设置的时间值后才会被触发 负值:元素过渡效果会从该时间点开始显示,之前的动作被截断 0:默认值,元素过渡效果立即执行
过渡的触发机制 伪类触发 :hover :active :focus :checked 媒体查询:通过@media属性判断设备的尺寸、方向等 JavaScript触发:用JavaScript脚本触发
CSS3动画 animation动画简介 animation实现动画的组成部分 通过类似Flash动画的关键帧声明一个动画 在animation属性中,调用关键帧声明的动画,实现一个更为复杂的动画效果 CSS3动画的使用过程 设置关键帧 @keyframes IDENT { @keyframes spread { from {/*CSS样式写在这里*/} 0% {0;} percentage {/*CSS样式写在这里*/} 33% {23px;} to {/*CSS样式写在这里*/} 66% {46px;} } 100% {69px;} } 调用关键帧 animation:animation-name ----- 由@keyframes创建的动画名称 animation–duration ----- 动画时间 animation-timing-function ------ 动画方式 animation-delay ------ 延迟时间 animation-iteration-count ------ 动画的播放次数 animation-direction ------ 动画的播放方向 animation-play-state ------ 动画的播放状态 animation-fill-mode; ------ 动画的播放之外的状态 动画的播放次数(animation-iteration-count) 值通常为整数,默认值为1 特殊值infinite,表示动画无限次播放 动画的播放方向(animation-direction) normal,动画每次都是循环向前播放 alternate,动画播放为偶数次则向前播放 动画的播放状态(animation-play-state) running将暂停的动画重新播放 paused将正在播放的元素动画停下来 动画发生的操作(animation-fill-mode) forwards表示动画在结束后继续应用最后关键帧的位置 backwards表示会在向元素应用动画样式时迅速应用动画的初始帧 both表示元素动画同时具有forwards和backwards的效果
总结 CSS3变形 rotate( )函数只是旋转,而不会改变元素的形状 skew( )函数是倾斜,元素不会旋转,会改变元素的形状 过渡的触发机制(常用) :hover 创建动画步骤 @keyframes:创建动画(关键帧) animation:在对应元素上使用动画