视距-用来设置用户与元素3d空间Z平面之间的距离。

实例1:

      HTML:

 <div class="perspective">
<h3>鼠标放到图片上面来查看效果哦!(图片反转360度)</h3>
<div class="container">
<div class="inner">
<div class="rotate">
<img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
</div>
</div>
</div> <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),但是不使用perspective属性</h3>
<div class="container">
<div class="inner">
<div class="rotate three-d">
<img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
</div>
</div>
</div> <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为100px,值越小,用户与3D空间z平面距离越近</h3>
<div class="container">
<div class="inner">
<div class="rotate three-d rotate2">
<img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
</div>
</div>
</div> <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为200px,值越大,用户与3D空间z平面距离越远,视觉效果就越小</h3>
<div class="container">
<div class="inner">
<div class="rotate three-d rotate3">
<img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
</div>
</div>
</div> <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为400px,值越大,用户与3D空间z平面距离越远,视觉效果就越小</h3>
<div class="container">
<div class="inner">
<div class="rotate three-d rotate4">
<img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
</div>
</div>
</div>
</div>

CSS:

 .perspective .container {
width:500px;
height:300px;
margin:10px auto;
position:relative;
}
.perspective .inner {
width:142px;
height:200px;
position:absolute;
}
@keyframes inner2{
0%{
transform:rotateY(0deg)
}
100%{
transform:rotateY(360deg)
}
}
.perspective .inner:hover{
animation:inner2 5s linear infinite;
} .perspective .rotate {
background: url("http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg") no-repeat center;
border: 5px solid hsla(50,50%,50%,.9);
transform: rotateY(45deg);
}
.perspective .rotate img{
border: 1px solid green;
transform: rotateX(15deg) translateZ(10px);
transform-origin: 0 0 40px;
}
.perspective .three-d {
transform-style: preserve-3d;
}
.perspective .rotate2 {
transform: perspective(150px) rotateY(45deg);
}
.perspective .rotate3 {
transform: perspective(200px) rotateY(45deg);
}
.perspective .rotate4 {
transform: perspective(400px) rotateY(45deg);
}

演示demo:

鼠标放到图片上面来查看效果哦!(图片反转360度)

鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),但是不使用perspective属性

鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为100px,值越小,用户与3D空间z平面距离越近

鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为200px,值越大,用户与3D空间z平面距离越远,视觉效果就越小

鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为400px,值越大,用户与3D空间z平面距离越远,视觉效果就越小

点击编辑在线源代码-查看效果

实例2:

HTML:

     <div class="perspective-nd">
<h3>perspective值为1000px的效果如下:perspective: 1000px;该值越大,角度出现的越远,相当低的强度和非常小的3D空间变化</h3>
<div class = "container">
<div class="inner">
<div class="side front">1</div>
<div class="side back">2</div>
<div class="side right">3</div>
<div class="side left">4</div>
<div class="side top">5</div>
<div class="side bottom">6</div>
</div>
</div>
<h3>perspective值为200px的效果如下:此值越小,角度出现的越近,从而创建一个高强度的角度和一个大型3D变化。</h3>
<div class = "container">
<div class="inner inner2">
<div class="side front">1</div>
<div class="side back">2</div>
<div class="side right">3</div>
<div class="side left">4</div>
<div class="side top">5</div>
<div class="side bottom">6</div>
</div>
</div>
</div>

CSS:

     .perspective-nd .container {
width:500px;
height:300px;
margin:10px auto;
position:relative;
}
.perspective-nd .inner {
font-size: 4em;
width: 2em;
margin: 1.5em auto;
transform-style: preserve-3d;
transform: rotateX(-20deg) rotateY(32deg);
perspective: 1000px;
}
.perspective-nd .side {
position: absolute;
width: 2em;
height: 2em;
background: rgba(255, 99, 71, 0.6);
border: 1px solid rgba(0, 0, 0, 0.5);
color: white;
text-align: center;
line-height: 2em;
}
.perspective-nd .front {
transform: translateZ(1em);
}
.perspective-nd .top {
transform: rotateX(90deg) translateZ(1em);
}
.perspective-nd .right {
transform: rotateY(90deg) translateZ(1em);
}
.perspective-nd .left {
transform: rotateY(-90deg) translateZ(1em);
}
.perspective-nd .bottom {
transform: rotateX(-90deg) translateZ(1em);
} .perspective-nd .back {
transform: rotateY(-180deg) translateZ(1em);
}
.perspective-nd .inner2 {
perspective: 200px;
}

perspective值为1000px的效果如下:perspective: 1000px;该值越大,角度出现的越远,相当低的强度和非常小的3D空间变化

1
2
3
4
5
6

perspective值为200px的效果如下:此值越小,角度出现的越近,从而创建一个高强度的角度和一个大型3D变化。

1
2
3
4
5
6

实例3:

HTML:

 <div class="perspective-origin">
<h3>perspective值为1000px的效果如下:perspective: 1000px;该值越大,角度出现的越远,相当低的强度和非常小的3D空间变化</h3>
<div class = "container">
<div class="inner">
<div class="side front">1</div>
<div class="side back">2</div>
<div class="side right">3</div>
<div class="side left">4</div>
<div class="side top">5</div>
<div class="side bottom">6</div>
</div>
</div>
</div>

CSS:

 .perspective-origin .container {
width:500px;
height:300px;
margin:10px auto;
position:relative;
}
.perspective-origin .inner {
font-size: 4em;
width: 2em;
margin: 1.5em auto;
transform-style: preserve-3d;
transform: rotateX(-20deg) rotateY(32deg);
perspective: 1000px;
animation: move-origin infinite 2s;
}
.perspective-origin .side {
position: absolute;
width: 2em;
height: 2em;
background: rgba(255, 99, 71, 0.6);
border: 1px solid rgba(0, 0, 0, 0.5);
color: white;
text-align: center;
line-height: 2em;
}
.perspective-origin .front {
transform: translateZ(1em);
}
.perspective-origin .top {
transform: rotateX(90deg) translateZ(1em);
}
.perspective-origin .right {
transform: rotateY(90deg) translateZ(1em);
}
.perspective-origin .left {
transform: rotateY(-90deg) translateZ(1em);
}
.perspective-origin .bottom {
transform: rotateX(-90deg) translateZ(1em);
} .perspective-origin .back {
transform: rotateY(-180deg) translateZ(1em);
}
@keyframes move-origin {
0% {
perspective-origin: 0% 0%;
}
25% {
perspective-origin: 100% 0%;
}
50% {
perspective-origin: 100% 100%;
}
75% {
perspective-origin: 0% 100%;
}
100% {
perspective-origin: 0% 0%;
}
}

演示demo:

perspective值为1000px的效果如下:perspective: 1000px;该值越大,角度出现的越远,相当低的强度和非常小的3D空间变化

1
2
3
4
5
6

实例4:

backface-visibility属性决定元素旋转背面是否可见,对于未旋转的元素,该元素是正面面向我们的,但是当其Y轴旋转约180度时会导致元素的背面面对观众。
backface-visibility基本语法如下:
backface-visibility: visible | hidden
visible含义是:为backface-visibility的默认值,表示反面可见
hidden含义是:表示反面不可见。
backface-visibility属性可用于隐藏内容的背面。默认情况下,背面可见,这意味着即使在翻转后,旋转的内容仍然可见。但当backface-visibility设置为hidden时,旋转后内容将隐藏,因为旋转后正面将不再可见。

HTML:

 <div class="backface-visibility">
<h3>backface-visibility:hidden;背面不可见</h3>
<div class = "container">
<div class="inner">
<div class="side front">1</div>
<div class="side back">2</div>
<div class="side right">3</div>
<div class="side left">4</div>
<div class="side top">5</div>
<div class="side bottom">6</div>
</div>
</div> <h3>背面可见,在2,3,6方块设置backface-visibility:visible;</h3>
<div class = "container">
<div class="inner">
<div class="side front">1</div>
<div class="side back slide2">2</div>
<div class="side right slide2">3</div>
<div class="side left">4</div>
<div class="side top">5</div>
<div class="side bottom slide2">6</div>
</div>
</div>
</div>

CSS:

 .backface-visibility .container {
width:500px;
height:300px;
margin:10px auto;
position:relative;
}
.backface-visibility .inner {
font-size: 4em;
width: 2em;
margin: 1.5em auto;
transform-style: preserve-3d;
transform: rotateX(-20deg) rotateY(32deg);
perspective: 1000px;
animation: move-origin33 infinite 2s;
}
.backface-visibility .side {
position: absolute;
width: 2em;
height: 2em;
background: rgba(255, 99, 71, 0.6);
border: 1px solid rgba(0, 0, 0, 0.5);
color: white;
text-align: center;
line-height: 2em;
backface-visibility:hidden;
}
.backface-visibility .front {
transform: translateZ(1em);
}
.backface-visibility .top {
transform: rotateX(90deg) translateZ(1em);
}
.backface-visibility .right {
transform: rotateY(90deg) translateZ(1em);
}
.backface-visibility .left {
transform: rotateY(-90deg) translateZ(1em);
}
.backface-visibility .bottom {
transform: rotateX(-90deg) translateZ(1em);
} .backface-visibility .back {
transform: rotateY(-180deg) translateZ(1em);
}
@keyframes move-origin33 {
0% {
perspective-origin: 0% 0%;
}
25% {
perspective-origin: 100% 0%;
}
50% {
perspective-origin: 100% 100%;
}
75% {
perspective-origin: 0% 100%;
}
100% {
perspective-origin: 0% 0%;
}
}
.backface-visibility .slide2 {
backface-visibility:visible;
}

演示demo:

backface-visibility:hidden;背面不可见

1
2
3
4
5
6

背面可见,在2,3,6方块设置backface-visibility:visible;

1
2
3
4
5
6

感谢-空智

css3 视距-perspective的更多相关文章

  1. CSS3景深-perspective

    3D视图正方体: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  2. css3 tranform perspective属性

    perspective 属性用于规定观察点距离元素的距离, 1 观察点距离元素越近,元素变形就越大,灭点距离越近. 2 观察点距离元素越远,元素变形越小,灭点距离也就越远. 比如设置perspecti ...

  3. 如何理解 css3 的 perspective 属性

    一.写在前面的话 最近想多了解一下CSS3的transform 3D效果,transform:英文直译就是转换,它可以实现旋转.缩放.位移等效果,听起来有没有觉得很酷的样子,狠狠的点这里来看看旋转和位 ...

  4. css中的视距perspective和视差效果

    概述 之前觉得2个效果很叼,一个是3D翻转效果,另一个是视差效果.今天好好的研究一下,把心得记录下来,供以后开发时参考,相信对其他人也有用. 3D翻转 3D翻转效果其实非常简单,其实就是perspec ...

  5. css3 利用perspective实现翻页效果和正方体 以及翻转效果

    要点: 1 实现3D效果就需要使用perspective属性 1 页面旋转使用css3的rorate 2 使用backface-visibility 实现正面元素翻转之后背面不可见,显示出反面的元素 ...

  6. css3中perspective

    perspective 属性定义 3D 元素距视图的距离,以像素计.该属性允许改变 3D 元素查看 3D 元素的视图.当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本 ...

  7. CSS3: perspective 3D属性

    本文引自:http://blog.csdn.net/cddcj/article/details/52956540 perspective 属性指定了观察者与z=0平面的距离,使具有三维位置变换的元素产 ...

  8. css3实践之摩天轮式图片轮播+3D正方体+3D标签云(perspective、transform-style、perspective-origin)

    本文主要通过摩天轮式图片轮播的例子来讲解与css3 3D有关的一些属性. demo预览: 摩天轮式图片轮播(貌似没兼容360 最好用chrome) 3D正方体(chrome only) 3D标签云(c ...

  9. Transform-style和Perspective属性

    transform-style属性 transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现.他主要有两个属性值:flat和preserve-3d. transfor ...

随机推荐

  1. Linux文件的建立、复制、删除和移动命令

    mkdir命令一.mkdir 命令使用权限 所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录. 二.mkdir 命令使用格式 格式: mkdir [选项] DirName ...

  2. 当 jquery.unobtrusive-ajax.js 遇上Web API

    最近在熟悉Abp框架,其基于DDD领域驱动设计...前段可以绕过mvc直接调用根据app层动态生成的webapi,有点神奇~,Web API之前有简单接触过,WCF的轻量级版,一般用于做一写开发性的服 ...

  3. [转载]tslib1.4与Qt4.8.6的交叉编译与移植

    原文:http://www.cnblogs.com/Jasonsblog/p/3757985.html http://blog.csdn.net/sno_guo/article/details/168 ...

  4. hdoj 1576

    //1Y真是爽啊 题意:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1).  分析:根据题意a=b*x   a=m ...

  5. Android中什么时候使用get和post 以及他们的优缺点!!

    1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...

  6. java 字符串转成 json 数组并且遍历

    当需要把一串字符串转成一个json 数组 ,并遍历其中的内容时. 首先要导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包 String s ...

  7. UML 类图常用表示方法.

    UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’): 依赖:虚线+箭头(动物和空气的关系): 关联:实线+箭头(企鹅需要知道气候才迁移): 聚合:空心四边形+实线+箭头(雁群和大雁的关系 ...

  8. 初始化git远程仓库步骤

    Git global setup git config --global user.name "bingo" git config --global user.email &quo ...

  9. HDU 4067 hdoj 4067 Random Maze 最小费用流

    给出n个点,m条边,入口s和出口t,对于每条边有两个值a,b,如果保留这条边需要花费:否则,移除这条边需要花费b. 题目要求用最小费用构造一个有向图满足以下条件: 1.只有一个入口和出口 2.所有路都 ...

  10. C++ 类模板的使用

    从事C++挺久了,在前段时看书时,发现高手,都是在写模板无,泛型编程,顿感差距.自己连模板都没有写,于是就小小的研究了下模板的用法. 模板简而言之就是对某此对象的相同方法,或处理方式,进行归纳,总结, ...