CSS3 动画
创始人
2024-02-14 13:32:45
0

变形 transform

在CSS3中,动画效果包括3个部分:变形(transform)、过渡(transition)、动画(animation)

translate()平移

transform: translateX(x);    /*沿x轴方向平移*/
transform: translateY(y);    /*沿y轴方向平移*/
transform: translate(x, y);   /*沿x轴和y轴同时平移*/

scale()缩放

transform: scaleX(x);    /*沿x轴方向缩放*/
transform: scaleY(y);    /*沿y轴方向缩放*/
transform: scale(x, y);   /*沿x轴和y轴同时缩放*/

当x或y取值为0~1时,元素进行缩小;当x或y取值大于1时,元素进行放大。

skew() 倾斜

倾斜也有3种情况:skewX()、skewY()、skew()。

参数x表示元素在x轴方向的倾斜度数,单位为deg(即degree的缩写)。如果度数为正,则表示元素沿x轴方向逆时针倾斜;如果度数为负,则表示元素沿x轴方向顺时针倾斜。
参数y表示元素在y轴方向的倾斜度数,单位为deg。如果度数为正,则表示元素沿y轴方向顺时针倾斜;如果度数为负,则表示元素沿y轴方向逆时针倾斜。

rotate()旋转

transform: rotate(angle);

参数angle表示元素相对于中心原点旋转的度数,单位为deg。如果度数为正,则表示顺时针旋转;如果度数为负,则表示逆时针旋转。
 

transform-origin改变中心原点

在CSS3变形中,任何元素都有一个中心原点。默认情况下,元素的中心原点位于x轴和y轴的50%处。
CSS3的各种变形(平移、缩放、倾斜等)都是以元素的中心原点进行变形的。

我们可以使用transform-origin属性来改变元素的中心原点。

transform-origin属性取值有两种:一种是“长度值”,另一种是“关键字”。当取值为长度值时,单位可以为px、em和百分比等。当取值为关键字时,transform-origin属性取值跟background-position属性取值是相似的。

过渡 transition 

我们可以使用transition属性将元素的某一个属性从“一个属性值”在指定的时间内平滑地过渡到“另一个属性值”,从而实现动画效果。
CSS变形(transform)呈现的仅仅是一个“结果”,而CSS过渡(transition)呈现的是一个“过程”。
transition: 过渡属性 过渡时间 过渡方式 延迟时间;

 凡是涉及CSS3过渡,我们都是结合:hover伪类来实现过渡效果的。
我们可以使用transition-timing-function属性来定义过渡方式。所谓“过渡方式”,指的是动画在过渡时间内的速率变化方式。

 

transition-property:border-radius,background-color;
transition-duration:1s;
transition-timing-function:linear;
transition-delay: 0s;

上面这段代码可以等价于:

transition:all 1s linear 0s;

当transition-property属性定义为all时,CSS3会自动判断哪些属性是作为过渡效果的属性,相对来说更加简单方便。
由于transition-delay属性是一个可选属性,因此当transition-delay取值为0s时,这个参数可以省略。

transition:all 1s linear;

动画 animation

▶ 对于transition属性来说,它只能将元素的某一个属性从一个属性值过渡到另一个属性值。
▶ 对于animation属性来说,它可以将元素的某一个属性从第1个属性值过渡到第2个属性值,然后还可以继续过渡到第3个属性值,以此类推。

nimation:动画名称 持续时间 动画方式 延迟时间 动画次数 动画方向;

*定义动画*/
@keyframes mycolor
{0%{background-color:red;}30%{background-color:blue;}60%{background-color:yellow;}100%{background-color:green;}
}
/*调用动画*/
div:hover
{animation:mycolor 5s linear;
}

在调用动画之前,我们必须先使用@keyframes规则来定义动画。
在使用@keyframes规则时,如果仅仅只有0%和100%这两个百分比,此时0%和100%可以使用关键字from和to来代替,其中0%对应from,100%对应to。

我们可以使用animation-duration属性来定义动画的持续时间。
animation-duration属性取值是一个时间,单位为秒(s),可以是小数。

我们可以使用animation-timing-function属性来定义动画的动画方式。所谓“动画方式”,指的是动画在过渡时间内的速率变化方式。
animation-timing-function属性取值共有5种,这跟CSS3过渡的transition-timing-function是一样的。

我们可以使用animation-iteration-count属性来定义动画的播放次数。
animation-iteration-count属性取值有两种:一种是“正整数”,另一种是“infinite”。当取值为n(正整数)时,表示动画播放n次;当取值为infinite时,表示动画播放无数次,也就是循环播放。

我们可以使用animation-direction属性来定义动画的播放方向。

/*第1个i元素*/
#box>i:nth-child(1)
{left: 0;animation: loading 1s ease-in 0.1s infinite;
}

相关内容

热门资讯

处理消费纠纷不能止于“喊话平台... 维 辰 政府部门公开喊话互联网平台,少见。 12月23日,丽江市古城区文化和旅游局公开发布《丽江市古...
金能科技:按照国家及当地政策落... 有投资者在互动平台向金能科技提问:“您好,请问公司是否针对员工生育或育儿设有相关的福利或激励政策?如...
AI赋能基层调解 老调解员有了... 今年6月以来,随着许多地方速裁法庭的建立,部分民商事纠纷,从法院前移到综治中心进行调解。各类商业纠纷...
起诉中信证券理财产品违规!获赔... 认购中信证券理财产品逾期超三年,富安娜(002327)追回款项的工作取得进展。 12月25日,富安娜...
释放购房需求、优化贷款政策!北... 24日,北京出台楼市新政,放宽非京籍家庭购房条件,支持多子女家庭住房需求。业内人士认为,北京楼市新政...
952名中国籍涉电诈犯罪嫌疑人... 近日,公安部派出工作组会同缅甸、泰国执法部门在缅甸妙瓦底地区,联合开展新一轮赌诈园区集中清剿行动,9...
报告显示:政策持续推动 全国二... 人民网北京12月25日电 (记者乔雪峰)当前,在以旧换新政策持续推动下,二手车市场正从昔日的区域性交...
字节跳动通报三季度内部违规情况... 红星资本局12月25日消息,今日,字节跳动披露2025年三季度内部违规案例的处理情况。通报显示,三季...
中纪委网站:集中清理规范性文件... 记者从全国人大常委会法制工作委员会法规备案审查室了解到,为破除民营经济发展的各类制度障碍,依法保护民...