css3 2d转换3d转换以及动画的知识点汇总

css3 2d转换

2d转换的方法:

1、移动 translate(x, y) 可以改变元素的位置,x、y可为负值;

2、缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x、y的取值可为小数,不可为负值;

4、旋转 rotate(deg) 可以对元素进行旋转,正值为顺时针,负值为逆时针;

5、倾斜 skew(deg, deg) 可以使元素按一定的角度进行倾斜

2d转换的属性:

  • transform
  • transform-origin

用法:

例如:

div
{
transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
}

较难理解部分的分析

2d转换的移动规则和相对定位类似,即无论元素移动到哪里,她的原始位置一直被他占据着。

skew 倾斜

用法:transform: skew(30deg)  或者 transform: skew(30deg, 30deg);

参数表示倾斜角度,单位deg

  • 一个参数时:表示水平方向的倾斜角度;
  • 两个参数时:第一个参数表示水平方向的倾斜角度,第二个参数表示垂直方向的倾斜角度。

关于skew倾斜角度的计算方式表面上看并不是那么直观,这里借鉴某大拿绘制的图举例说明一下:

首先需要说明的是skew的默认原点transform-origin是这个物件的中心点

看图:

transform-origin 基准点

在使用transform方法进行文字或图像的变形时,是以元素的中心点为基准点进行的。使用transform-origin属性,可以改变变形的基准点。

用法:transform-origin: 10px 10px;

共两个参数,表示相对左上角原点的距离,单位px,第一个参数表示相对左上角原点水平方向的距离,第二个参数表示相对左上角原点垂直方向的距离;

两个参数除了可以设置为具体的像素值,其中第一个参数可以指定为left、center、right,第二个参数可以指定为top、center、bottom。

css3 3d转换

想深入理解3d转换的原理  可以参考 张鑫旭css3 3d转换

首先脑子里要有3d坐标图

matrix3d(n,n,n,n,n,n,
n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
perspective(n) 定义 3D 转换元素的透视视图。

必不可少的perspective属性

如果说rotateX/rotateY/rotateZ可以帮助理解三维坐标,则translateZ则可以帮你理解透视位置。

我们都知道近大远小的道理,对于没有rotateX以及rotateY的元素,translateZ的功能就是让元素在自己的眼前或近或远。比方说,我们设置元素perspective为201像素,如下:

perspective: 201px;

则其子元素,设置的translateZ值越小,则子元素大小越小(因为元素远去,我们眼睛看到的就会变小);translateZ值越大,该元素也会越来越大,当translateZ值非常接近201像素,但是不超过201像素的时候(如200像素),该元素的大小就会撑满整个屏幕(如果父辈元素没有类似overflow:hidden的限制的话)。因为这个时候,子元素正好移到了你的眼睛前面,所谓“一叶蔽目,不见泰山”,就是这么回事。当translateZ值再变大,超过201像素的时候,该元素看不见了——这很好理解:我们是看不见眼睛后面的东西的!

参考博客 张鑫旭css3 3d转换

理解perspective-origin

perspective-origin这个属性超级好理解,表示你那双色迷迷的眼睛看的位置。默认就是所看舞台或元素的中心。有时候,我们对中心的位置是不感兴趣的,希望视线放在其他一些地方。比方说

下面为立方体的实际应用透视效果图:

perspective-origin: 25% 75%;

transform-style: preserve-3d

要实现3d效果,这个属性是必加的

backface-visibility:hidden(背面是不可见的)   或visible(背面是可见的)

在显示世界中,我们无法穿过软妹A看到其身后的软妹B或C或D;但是,在CSS3的3D世界中,默认情况下,我们是可以看到背后的元素

因此,为了切合实际,我们常常会这样设置,使后面元素不可见:

backface-visibility:hidden;

例子 菜鸟教程

最后看一个3d转换的例子:图片的旋转木马效果demo

css3过度

参考 菜鸟教程css3过度      因为这里没有特别难理解的东西 故不再整理

css3动画

参考 菜鸟教程css3动画   因为这里没有特别难理解的东西 故不再整理

参考 文章

张鑫旭  好吧,CSS3 3D transform变换,不过如此!

时间: 2024-11-29 00:02:17

css3 2d转换3d转换以及动画的知识点汇总的相关文章

CSS3 2D、3D 转换

一.CSS3 转换 通过 CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. 浏览器支持 Internet Explorer 10.以及 Opera 支持 transform 属性. 注释:Internet Explorer 9 需要前缀 -ms-. Chrome 和 Safari 需要前缀 -webkit-. 二.2D 转换 在本章中,您将学到如下 2D 转换方法: translate() rotate() scale() skew() matrix() 1.translate(

CSS3 2D、3D转换

2D转换方法:transform().rotate().scale().skew().matrix() 3D转换方法:rotateX().rotateY() 1.示例代码 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>2D.3D转换</title> <style> section{width:

CSS3的2D与3D转换

2D和3D转换涉及到数学中的知识,作为一个数学专业的毕业生,不研究一下岂不是对不起自己的专业? 首先来看几个参数: 1.transform-origin:origin(起源,起点),也即变形的起点,在数学上可以理解为坐标原点. 其语法为:transform-origin:[<percentage> | <length> | left | center | right | top | bottom] | [<percentage> | <length> | l

过渡及2D与3D转换

一.过渡 什么是过渡(transition)? 过渡(transition)是元素从一种样式逐渐改变为另一种的效果. 1.要实现这一点,必须规定两项内容: a.规定您希望把效果添加到哪个CSS属性上 :   b.规定效果的时长 . 格式:transition: width/(all) 2s;(注:当只需要width时就直接写width,如果需要过渡所有元素就可以使用all)    注:如果时长未规定,则不会有过渡效果,因为默认值是 0. 2.效果开始于指定的CSS属性改变值时.CSS属性改变的典

CSS3中的2D和3D转换知识介绍

一  2D转换 转换是CSS3中具有颠覆性的特征之一,可以实现元素的位移.旋转.变形.缩放,甚至支持矩阵方式,配合即将学习的过渡和动画知识,可以取代大量之前只能靠Flash才可以实现的效果. 1.移动 translate(x, y) 可以改变元素的位置,x.y可为负值: 2.缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,x.y的取值可为小数,不可为负值: 4.旋转 rotate(deg) 可以对元素进行旋转,正值为顺时针,负值为逆时针: 5.倾斜 skew(deg, deg)

CSS笔记(十二)CSS3之2D和3D转换

参考:http://www.w3school.com.cn/css3/css3_2dtransform.asp 2D Transform 方法 函数 描述 matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵. translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素. translateX(n) 定义 2D 转换,沿着 X 轴移动元素. translateY(n) 定义 2D 转换,沿着 Y 轴移动元素. scale(x,y) 定义 2D 缩放转换,改

纯CSS3炫酷3D折叠面板动画特效

这是一款效果非常炫酷的CSS3 3D折叠面板动画特效.该折叠面板特效当鼠标移动到图片上时,一个面板会以3d折叠的方式在顶部展开,并显示图片的标题等信息..这个效果使用3D CSS animations 来制作折叠面板的动画,纯CSS,没有使用javascript. 在线演示:http://www.htmleaf.com/Demo/201501251276.html 下载地址:http://www.htmleaf.com/css3/css3donghua/201501251275.html

纯CSS3超酷3D旋转立方体动画特效

这是一款效果非常炫酷的纯CSS3 3D旋转立方体动画特效.该3D立方体使用CSS3 perspective制作,可以在水平方向.垂直方向和平面视角方向旋转,效果相当震撼.使用CSS3来制作动画效果已经成为WEB前端开发的一种时尚,从简单的颜色和尺寸动画,到复杂的旋转.翻转动画, CSS3展现了它无穷的魅力.使用CSS来制作立方体动画,代码简洁易懂,效果更是令人惊叹! 在线演示:http://www.htmleaf.com/Demo/201501251274.html 下载地址:http://ww

CSS3动画与2D、3D转换

一.过度动画:transition 五个属性: transition-property css 样式属性名称 transition-duration 动画持续时间(需要单位s) transition-timing-function 动画效果函数名称 linear.ease.ease-in.ease-out. ease-in-out.cubic-bezier(n,n,n,n) transition-delay 延迟执行动画的时间 animation-play-state:paused;暂停动画执行