前端Css3那些事

Posted 秦思IT小课堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端Css3那些事相关的知识,希望对你有一定的参考价值。

CSS3–过渡动画(transition)、变形(transform)


1、概述 transition属性


可以让动画在CSS层面实现,此时不是利用setInterval(),不是定时器,而是底层C++在渲染,渲染动画的质量、丝滑程度都要远远优于JS、jQuery。

要颠覆我们传统制作网页动画的思维模式,现在的手机页面中,绝对不会有任何动画是setInterval()完成的,而都是过渡实现的。

今后2~3年,PC端也会这样,过渡会淘汰setInterval()和animate函数。

语法:transition: property duration timing-function delay;时间的单位是:秒(s)。

值 说明 属性值 描述

transition-property 指定CSS属性的name,transition效果 none 没有属性会获得过渡效果。

all 所有属性都将获得过渡效果。

property 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。

transition-duration transition效果需要指定多少秒或毫秒才能完成 规定完成过渡效果需要花费的时间(以秒或毫秒计)。

默认值是 0,意味着不会有效果。

transition-timing-function

指定transition效果的转速曲线

linear 以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。

ease 慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。

ease-in 以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。

ease-out 以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。

ease-in-out 以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。

cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

transition-delay 定义transition效果开始的时候 指定秒或毫秒数之前要等待切换效果开始


2、什么属性可以参与过渡


几乎所有的CSS属性都能过渡。

JQuery transition

background-color

background-position

background-image

任何的变形transform都能够过渡


3、过渡动画的触发条件


任何改变CSS的情况,都会触发过渡。比如:hover、加减类、干脆直接设置CSS。

例如:

直接设置CSS会引发过渡动画:

document.getElementById("box").style.width = "300px";

类名的改变会引发过渡动画:

document.getElementById("box").className = "long";

特别注意: transition 不能继承。

前端Css3那些事


变形


transform属性,最最重量CSS3改变。让元素在2D、3D进行形状的变化。


1、2D变形


deg表示degree(度数),单位不能少,只有deg单位,没有别的单位。

值 描述 备注 截图

rotate(angle) 在参数中规定角度

skew(x-angle,y-angle) 沿着 X 和 Y 轴的 2D 倾斜转换。

skewX(angle) 沿着 X 轴的 2D 倾斜转换。

skewY(angle) 沿着 Y 轴的 2D 倾斜转换。

scale(x,y)

沿着 X 和 Y 轴的 2D 缩放转换。 大于1:放大, 0~1:缩小。

scaleX(x) 设置 X 轴的值来定义缩放转换。

scaleY(y) 设置 Y 轴的值来定义缩放转换。

注意:

没有变形:transform:none;

多种变形用空格隔开。ef:transform:scale(0.5) skew(10deg,20deg) rotate(30deg);


2、3D变形


2013年谷歌推出了Chrome36,正式宣告CSS进入了3D时代。

值 描述 备注 截图

translate3d(x,y,z) 沿着 X、Y 和Z轴的 3D 转换。

translate 空间移动

translateX(x) 转换,只是用 X 轴的值。

translateY(y) 转换,只是用 Y 轴的值。

translateZ(z) 3D 转换,只是用 Z 轴的值。

rotate3d(x,y,z,angle) 沿着 X、Y 和Z轴的 3D 旋转。

rotate 旋转

rotateX(angle) 沿着 X 轴的 3D 旋转。

rotateY(angle) 沿着 Y 轴的 3D 旋转。

rotateZ(angle) 沿着 Z 轴的 3D 旋转。

perspective(n) 为 3D 转换元素定义透视视图(景深)。



声明:本文章来自互联网分享如涉及到版权问题请联系客服处理谢谢!

秦思IT小课堂
扫码关注我们




以上是关于前端Css3那些事的主要内容,如果未能解决你的问题,请参考以下文章

10个值得前端收藏的CSS3动效库

10个值得前端收藏的CSS3动效库(工具)

2019学习总结

前端面试HTML5+CSS3初级面试4

前端那些事儿

前端CSS3阴影box-shadow用法