• css3 视距-perspective


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

    实例1:

          HTML:

     1 <div class="perspective">
     2     <h3>鼠标放到图片上面来查看效果哦!(图片反转360度)</h3>
     3     <div class="container">
     4         <div class="inner">
     5             <div class="rotate">
     6                 <img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
     7             </div>
     8         </div>
     9     </div>
    10 
    11     <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),但是不使用perspective属性</h3>
    12     <div class="container">
    13         <div class="inner">
    14             <div class="rotate three-d">
    15                 <img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
    16             </div>
    17         </div>
    18     </div>
    19 
    20     <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为100px,值越小,用户与3D空间z平面距离越近</h3>
    21     <div class="container">
    22         <div class="inner">
    23             <div class="rotate three-d rotate2">
    24                 <img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
    25             </div>
    26         </div>
    27     </div>
    28 
    29     <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为200px,值越大,用户与3D空间z平面距离越远,视觉效果就越小</h3>
    30     <div class="container">
    31         <div class="inner">
    32             <div class="rotate three-d rotate3">
    33                 <img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
    34             </div>
    35         </div>
    36     </div>
    37 
    38     <h3>鼠标放到图片上面来查看效果哦!(图片反转360度--使用transform-style: preserve-3d;效果),使用perspective属性且值为400px,值越大,用户与3D空间z平面距离越远,视觉效果就越小</h3>
    39     <div class="container">
    40         <div class="inner">
    41             <div class="rotate three-d rotate4">
    42                 <img src="http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg" alt="" width="142" height="200" />
    43             </div>
    44         </div>
    45     </div>
    46     </div>

          CSS:

     1 .perspective .container {
     2         width:500px;
     3         height:300px;
     4         margin:10px auto;
     5         position:relative;
     6     }
     7     .perspective .inner {
     8         width:142px;
     9         height:200px;
    10         position:absolute;
    11     }
    12     @keyframes inner2{
    13         0%{
    14             transform:rotateY(0deg)
    15         }
    16         100%{
    17             transform:rotateY(360deg)
    18         }
    19     }
    20     .perspective .inner:hover{
    21         animation:inner2 5s linear infinite;
    22     }
    23 
    24     .perspective .rotate {
    25         background: url("http://images2015.cnblogs.com/blog/561794/201604/561794-20160412230412973-1641353956.jpg") no-repeat center;
    26         border: 5px solid hsla(50,50%,50%,.9);
    27         transform: rotateY(45deg);
    28     }
    29     .perspective .rotate img{
    30         border: 1px solid green;
    31         transform: rotateX(15deg) translateZ(10px);
    32         transform-origin: 0 0 40px;
    33     }
    34     .perspective .three-d {
    35          transform-style: preserve-3d; 
    36     }
    37     .perspective .rotate2 {
    38         transform: perspective(150px) rotateY(45deg);
    39     }
    40     .perspective .rotate3 {
    41         transform: perspective(200px) rotateY(45deg);
    42     }
    43     .perspective .rotate4 {
    44         transform: perspective(400px) rotateY(45deg);
    45     }

    演示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:

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

    CSS:

     1     .perspective-nd .container {
     2         width:500px;
     3         height:300px;
     4         margin:10px auto;
     5         position:relative;
     6     }
     7     .perspective-nd .inner {
     8         font-size: 4em;
     9         width: 2em;
    10         margin: 1.5em auto;
    11         transform-style: preserve-3d;
    12         transform: rotateX(-20deg) rotateY(32deg);
    13         perspective: 1000px;
    14     }
    15     .perspective-nd .side {
    16         position: absolute;
    17         width: 2em;
    18         height: 2em;
    19         background: rgba(255, 99, 71, 0.6);
    20         border: 1px solid rgba(0, 0, 0, 0.5);
    21         color: white;
    22         text-align: center;
    23         line-height: 2em;
    24     }
    25     .perspective-nd .front {
    26         transform: translateZ(1em);
    27     }
    28     .perspective-nd .top {
    29         transform: rotateX(90deg) translateZ(1em);
    30     }
    31     .perspective-nd .right {
    32         transform: rotateY(90deg) translateZ(1em);
    33     }
    34     .perspective-nd .left {
    35         transform: rotateY(-90deg) translateZ(1em);
    36     }
    37     .perspective-nd .bottom {
    38         transform: rotateX(-90deg) translateZ(1em);
    39     }
    40 
    41     .perspective-nd .back {
    42         transform: rotateY(-180deg) translateZ(1em);
    43     }
    44     .perspective-nd .inner2 {
    45         perspective: 200px;
    46     }

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

    1
    2
    3
    4
    5
    6

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

    1
    2
    3
    4
    5
    6

     实例3:

    HTML:

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

    CSS:

     1 .perspective-origin .container {
     2         width:500px;
     3         height:300px;
     4         margin:10px auto;
     5         position:relative;
     6     }
     7     .perspective-origin .inner {
     8         font-size: 4em;
     9         width: 2em;
    10         margin: 1.5em auto;
    11         transform-style: preserve-3d;
    12         transform: rotateX(-20deg) rotateY(32deg);
    13         perspective: 1000px;
    14         animation: move-origin infinite 2s;
    15     }
    16     .perspective-origin .side {
    17         position: absolute;
    18         width: 2em;
    19         height: 2em;
    20         background: rgba(255, 99, 71, 0.6);
    21         border: 1px solid rgba(0, 0, 0, 0.5);
    22         color: white;
    23         text-align: center;
    24         line-height: 2em;
    25     }
    26     .perspective-origin .front {
    27         transform: translateZ(1em);
    28     }
    29     .perspective-origin .top {
    30         transform: rotateX(90deg) translateZ(1em);
    31     }
    32     .perspective-origin .right {
    33         transform: rotateY(90deg) translateZ(1em);
    34     }
    35     .perspective-origin .left {
    36         transform: rotateY(-90deg) translateZ(1em);
    37     }
    38     .perspective-origin .bottom {
    39         transform: rotateX(-90deg) translateZ(1em);
    40     }
    41 
    42     .perspective-origin .back {
    43         transform: rotateY(-180deg) translateZ(1em);
    44     }
    45     @keyframes move-origin {
    46       0% {
    47         perspective-origin: 0%  0%;
    48       }
    49       25% {
    50         perspective-origin: 100%  0%;
    51       }
    52       50% {
    53         perspective-origin: 100% 100%;
    54       }
    55       75% {
    56         perspective-origin: 0%  100%;
    57       }
    58       100% {
    59         perspective-origin: 0%   0%;
    60       }
    61     }

    演示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:

     1 <div class="backface-visibility">
     2         <h3>backface-visibility:hidden;背面不可见</h3>
     3         <div class = "container">
     4             <div class="inner">
     5                 <div class="side front">1</div>
     6                 <div class="side back">2</div>
     7                 <div class="side right">3</div>
     8                 <div class="side left">4</div>
     9                 <div class="side top">5</div>
    10                 <div class="side bottom">6</div>
    11             </div>
    12         </div>
    13 
    14         <h3>背面可见,在2,3,6方块设置backface-visibility:visible;</h3>
    15         <div class = "container">
    16             <div class="inner">
    17                 <div class="side front">1</div>
    18                 <div class="side back slide2">2</div>
    19                 <div class="side right slide2">3</div>
    20                 <div class="side left">4</div>
    21                 <div class="side top">5</div>
    22                 <div class="side bottom slide2">6</div>
    23             </div>
    24         </div>
    25     </div>

    CSS:

     1 .backface-visibility .container {
     2         width:500px;
     3         height:300px;
     4         margin:10px auto;
     5         position:relative;
     6     }
     7     .backface-visibility .inner {
     8         font-size: 4em;
     9         width: 2em;
    10         margin: 1.5em auto;
    11         transform-style: preserve-3d;
    12         transform: rotateX(-20deg) rotateY(32deg);
    13         perspective: 1000px;
    14         animation: move-origin33 infinite 2s;
    15     }
    16     .backface-visibility .side {
    17         position: absolute;
    18         width: 2em;
    19         height: 2em;
    20         background: rgba(255, 99, 71, 0.6);
    21         border: 1px solid rgba(0, 0, 0, 0.5);
    22         color: white;
    23         text-align: center;
    24         line-height: 2em;
    25         backface-visibility:hidden;
    26     }
    27     .backface-visibility .front {
    28         transform: translateZ(1em);
    29     }
    30     .backface-visibility .top {
    31         transform: rotateX(90deg) translateZ(1em);
    32     }
    33     .backface-visibility .right {
    34         transform: rotateY(90deg) translateZ(1em);
    35     }
    36     .backface-visibility .left {
    37         transform: rotateY(-90deg) translateZ(1em);
    38     }
    39     .backface-visibility .bottom {
    40         transform: rotateX(-90deg) translateZ(1em);
    41     }
    42 
    43     .backface-visibility .back {
    44         transform: rotateY(-180deg) translateZ(1em);
    45     }
    46     @keyframes move-origin33 {
    47       0% {
    48         perspective-origin: 0%  0%;
    49       }
    50       25% {
    51         perspective-origin: 100%  0%;
    52       }
    53       50% {
    54         perspective-origin: 100% 100%;
    55       }
    56       75% {
    57         perspective-origin: 0%  100%;
    58       }
    59       100% {
    60         perspective-origin: 0%   0%;
    61       }
    62     }
    63     .backface-visibility  .slide2 {
    64         backface-visibility:visible;
    65     }

    演示demo:

    backface-visibility:hidden;背面不可见

    1
    2
    3
    4
    5
    6

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

    1
    2
    3
    4
    5
    6

     感谢-空智

  • 相关阅读:
    企业移动视频通话会议EasyRTC视频会议通话系统开拓视频会议行业新前景
    安防网络摄像头海康大华硬盘录像机视频流媒体服务器EasyNVR调用接口时提示未授权问题解决方案
    安防RTSP_Onvif网络摄像头互联网直播视频流媒体服务器在使用过程中如何保存用户登录时的信息
    RTSP、RTMP、HTTP-FLV、 HLS安防网络摄像头互联网直播音视频流媒体服务器EasyNVR如何实现密码的MD5加密
    安防RTSP_Onvif网络摄像头互联网直播视频流媒体服务器EasyNVR如何解决视频流Ajax跨域访问的问题
    Python之网路编程利用threading模块开线程
    Python之网路编程之线程介绍
    Python之网路编程之进程池及回调函数
    Python之网路编程之-互斥锁与进程间的通信(IPC)及生产者消费者模型
    Python之网路编程利用multiprocessing开进程
  • 原文地址:https://www.cnblogs.com/qbzmy/p/5823625.html
Copyright © 2020-2023  润新知