css3--transition

一,转换定义:

1,能够改变元素的形状,尺寸,位置

2,转换分两种:

2D转换:只能在X,Y轴发生改变:

例子:旋转(rotate)、拉伸(scale)、平移(move)、倾斜(skew)

3D转换:除了X,Y轴以外还能Z轴变化。

如:空间旋转。。。

二,转换属性(transform:使用2D,3D):

1,提示:

目前浏览器并不是完全支持所有的Transform ,IE9、Firefox 和Opera 仅支持2D transforms ,相应的CSS定义为:-ms-transform 、-moz-transform 和-o-transform ,而Safari 和Chrome 都支持2D和3D transforms ,相应的CSS定义为:-webkit-transform 。

2,取值:

transform: none(默认值,表示元素不进行转换)

transform-functions(表示一个或者多个转换函数,中间以空格分开):

解释:CSS3变形是一些效果的集合,比如平移、旋转、缩放和倾斜效果,每个效果都被称作为变形函数(Transform Function)

写法:

transform:: rotate(angle) scale(x,y)/(0~1的值)skewX(angle) translate(x,y);

3,transform-origin()属性:

1),默认情况,变形的原点在元素的中心点;

写法:transform-origin : 数值/百分比/关键字(left,right,top,bottom);

一个值:表示所有轴的位置

两个值:表示 X 轴和 Y 轴

三个值:表示 X 轴、Y 轴和 Z 轴;

4,2D位移:

1)translate(平移) 可取值:数值、百分比,也可以是负值

2)scale(缩放) 可取值:默认值为1,缩小:0 到 1 之间的数值,放大:大于 1 的数值;

3)rotate(旋转) 可取值:根据原点,将元素按照顺时针旋转给定的角度

允许负值,元素将逆时针旋转

4)skew(倾斜)  可取值;以原点位置,围绕 X 轴和 Y 轴,也可以按照一定的角度倾斜,可能会改变元素的形状

5,transform-style属性也是3D效果中经常使用的,

1)flat值为默认值,表示所有子元素在2D平面呈现。preserve-3d表示所有子元素在3D空间中呈现。

2)如果对一个元素设置了transform-style的值为flat,则该元素的所有子元素都将被平展到该元素的2D平面中进行呈现。沿着X轴或Y轴方向旋转该元素将导致位于正或负Z轴位置的子元素显示在该元素的平面上,而不是它的前面或者后面。如果对一个元素设置了transform-style的值为preserve-3d,它表示不执行平展操作,他的所有子元素位于3D空间中。

transform-style属性需要设置在父元素中,并且高于任何嵌套的变形元素。

Demo:

HTML:

<div class="wrap">

<div class="spin">

<div class="rotate">

<img src="3d-distance.jpg" width="142" height="200" />

</div>

</div>

</div>

<div class="wrap">

<div class="spin">

<div class="rotate three-d">

<img src="3d_axes.png" width="142" height="200" />

</div>

</div>

</div>

CSS:

.wrap {

width: 500px;

height: 300px;

margin: 30px auto;

position: relative;

background: url(68.jpg) no-repeat center center;

background-size: 100% 100%;

}

.spin {

width: 142px;

height: 200px;

position: absolute;

top: 50%;

left: 50%;

margin-left: -72px;

margin-top: -101px;

border: 1px dashed orange;

cursor: pointer;

transform-style: preserve-3d;

}

.rotate {

background: url(images/cardKingClub.png) no-repeat center;

background-size: 100% 100%;

border: 5px solid hsla(50,50%,50%,.9);

transform: perspective(200px) rotateY(45deg);

}

.rotate img{

border: 1px solid green;

transform: rotateX(15deg) translateZ(10px);

transform-origin: 0 0 40px;

}

/*改变transform-style的默认值*/

.three-d {

transform-style: preserve-3d;

}

6,3D转换

1)perspective 属性(中文意思是:透视,视角)

perspective属性设置镜头到元素平面的距离。所有元素都是放置在z=0的平面上。比如perspective(300px)表示,镜头距离元素表面的位置是300像素。

2)特点:

a,为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身

b,只影响 3D 转换元素

注意点;默认是3D效果不明显?这是因为镜头离平面太远了,所以旋转效果不明显。试试perspective属性。设置perspect=400px。

3)3D 位移主要包含

translateZ(z)

translate3d(x,y,z)

解释:对于没有rotateX以及rotateY的元素,translateZ的功能就是让元素在自己的眼前或近或远(结合黑板上的图);

4)3D 旋转主要包含

rotateX(deg)

rotateY(deg)

rotateZ(deg)

rotate3d(x,y,z,deg)

5)3D 缩放主要包含

scaleZ(z)

scale3d(x,y,z)

demo:

HTML:

<section id="darkblue" class="container">

<div class="box"></div>

</section>

CSS:

.container {

width: 200px;

height: 200px;

margin-bottom: 50px;

border: 1px solid gray;

}

.box {

width: 100%;

height: 100%;

opacity: .75;

}

#darkblue {

perspective: 600px;

}

#darkblue .box {

background-color: darkblue;

transform: translateZ(50px);

}

时间: 2024-08-06 11:52:50

css3--transition的相关文章

css学习笔记——CSS3 transition 属性

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>CSS3 transition 属性</title> <style> .box{ width:100px; height:100px; background:red; -web

CSS3:Transition属性详解

Transition属性主要是用来对某个CSS属性的变化过程进行控制,官方的介绍是"CSS Transitions allow property changes in CSS values to occur smoothly over a specified duration.".而我个人则简单地理解为"在某个时间段内,平滑地改变某个CSS属性.". Transition又包含了四个子属性,分别为property.duration.timing-function.d

CSS3 transition规范的实际使用经验

本篇文章主要讲述CSS3 transition规范和在不同浏览器之间的使用差异,关于具体解决方法或如何规避问题的意见可以参考另一篇非常有见地的文章,"All You Need to Know About CSS Transitions".Alex MacCaw讲述的是关于实现特定的效果,而我要谈的是技术背景,主要讨论在使用CSS过渡的过程中所未预料到的问题. 结构 (HTML),表现(CSS),以及行为(JavaScript)相分离并不是什么新鲜的事情,然而 CSS 能跨越这个界限并且

css3 Transition动画执行时有可能会出现闪烁的bug

css3 Transition动画执行时有可能会出现闪烁的bug,一般出现在开始的时候. 解决方法: 1.-webkit-backface-visibility: hidden; 2.-webkit-transform-style: preserve-3d; 需要应用在动画元素上. 第二种方法在低端android上会出现性能问题.所以推荐第一种方法

css3 transition animation nick

时光转眼即逝,又到周六了,今天写点某部分人看不起的css玩玩! 转换 转换属性transform: 浏览器前缀: -webkit-transform;-o-transform;-moz-transform;-ms-transform; 取值: none : 默认值,没有转换操作 transform-function:一组转换函数 transform:函数1() 函数2() ......; 转换的原点transform-origin 在不指定原点前提前,默认原点为元素的中心处 取值:数值/百分比/

【转】CSS3 transition规范的实际使用经验

原文转自:http://blog.jobbole.com/56243/ 本篇文章主要讲述CSS3 transition规范和在不同浏览器之间的使用差异,关于具体解决方法或如何规避问题的意见可以参考另一篇非常有见地的文章,“All You Need to Know About CSS Transitions”.Alex MacCaw讲述的是关于实现特定的效果,而我要谈的是技术背景,主要讨论在使用CSS过渡的过程中所未预料到的问题. 结构 (HTML),表现(CSS),以及行为(JavaScript

CSS3 transition动画、transform变换、animation动画

一.CSS3 transition动画 transition可以实现动态效果,实际上是一定时间之内,一组css属性变换到另一组属性的动画展示过程. 属性参数: 1.transition-property 设置过渡的属性,比如:width height background-color2.transition-duration 设置过渡的时间,比如:1s 500ms3.transition-timing-function 设置过渡的运动方式 linear 匀速 ease 开始和结束慢速 ease-

CSS3 transition动画、CSS3 transform变换、CSS3 animation动画

CSS3 transition动画 1.transition-property 设置过渡的属性,比如:width height background-color2.transition-duration 设置过渡的时间,比如:1s 500ms3.transition-timing-function 设置过渡的运动方式 linear 匀速 ease 开始和结束慢速 ease-in 开始是慢速 ease-out 结束时慢速 ease-in-out 开始和结束时慢速 cubic-bezier(n,n,

如何为什么不定高度的元素添加CSS3 transition

但一个元素不设置height时,它的默认值是 auto,浏览器会计算出实际的高度. 但如果想给一个 height:auto 的块级元素的高度添加 CSS3 动画时,该怎么办呢? 从 MDN 的可以查到 CSS 支持动画的属性中的 height 属性如下: height :yes, as a length, percentage or calc(); // 当 height 的值是 length,百分比或 calc() 时支持 CSS3 过渡. 所以当元素 height : auto 时,是不支持

css3 transition 和 animation实现走马灯

这段时间在做一个App,H5的开发.页面上有公告 以走马灯的形式显示出来. 在开始直接用的marquee标签,后来发现在ios客户端,走马灯移动不够平滑,有抖动现象. 对于有强迫症的我而言是无法忍受的,后来就用js来写,发现andriod和ios客户端 的走马灯移动都不平滑,会抖动. 后来想到了可以用css3的transition和animation来写,分享一下代码! transition写法 <!DOCTYPE html> <html> <head> <met