zoukankan      html  css  js  c++  java
  • css3 利用perspective实现翻页效果和正方体 以及翻转效果

    要点:

    1 实现3D效果就需要使用perspective属性

    1 页面旋转使用css3的rorate

    2 使用backface-visibility 实现正面元素翻转之后背面不可见,显示出反面的元素

    demo1 翻页效果:

    html

    <div class="demo1">
      <div class="demo1-1">
        <div class='info'> 这是正面</div>
      </div>
      <div class="demo1-2">这是反面</div>
    </div>

    css

    .demo1 {
            margin: 20px auto;
            width: 200px;
            perspective: 1200px;/*重点*/
            height: 200px;
            position: relative;
            transform-style: preserve-3d;/*重点*/
            color: #fff;
        }
    
        .demo1 .demo1-1,.demo1 .demo1-2 {
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            text-align: center;
            background-color: blue;
        }
    
        .demo1 .demo1-1{
            z-index: 2;
            background-color: red;
            transform-origin: left;
            transition: all 1s ease-in-out;
            transform-style: preserve-3d;
    
        }
    
        .demo1:hover .demo1-1 {
            transform: rotateY(-120deg);
        }

    反面内容不显示需要加上css:(这个效果生效的关键点是它的父元素加上transform-style: preserve-3d;)

        .demo1 .demo1-1 .info {
            backface-visibility:hidden;/* 重点 */
       -webkit-backface-visibility:hidden; }

     

    正方体:

    html

    <div class="code-box">
            <div class='code code1'>1</div>
            <div class='code code2'>2</div>
            <div class='code code3'>3</div>
            <div class='code code4'>4</div>
            <div class='code code5'>5</div>
            <div class='code code6'>6</div>
        </div>

    css:

     .code-box {
            perspective: 1200px;/* 重点 */
            width: 100px;
            height: 100px;
            margin: 20px auto;
            position: relative;
            transform-style: preserve-3d;/* 重点 */
            transform: rotateY(-30deg);/* 可以看见全貌 */
            perspective-origin: -50% -50%;/* 已正方体的中心店来透视 */
            transform-origin: center center 50px;
            transition: all 2s ease-in-out;
        }
        .code-box:hover {
            transform: rotateY(360deg);
        }
    
        .code-box .code {
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            opacity: 0.7;
            color: #fff;
            font-size: 18px;
            line-height: 100px;
            text-align: center;
    
        }
    
        .code-box .code1 {
            background-color: red;
            transform: translateZ(100px);
        }
        .code-box .code2 {
            background-color: blue;
        }
        .code-box .code3 {
            background-color: green;
            transform: rotateY(90deg);
            transform-origin: right;
        }
    
        .code-box .code4 {
            background-color: yellow;
            transform: rotateY(-90deg);
            transform-origin: left;
        }
    
        .code-box .code5 {
            background-color: fuchsia;
            transform: rotateX(90deg);
            transform-origin: top;
        }
    
        .code-box .code6 {
            background-color: blueviolet;
            transform: rotateX(-90deg);
            transform-origin: bottom;
        }

    翻转效果:

    html

     <div class="flip-container">
            <div class="flipper">
                <div class="front">
                    <div class="info">here is content : AA</div>
                </div>
                <div class="back">
                    <div class="info">here is content : BB</div>
                </div>
            </div>
        </div>

    css

    .flip-container {
            margin: 20px auto;
            -webkit-perspective: 500;/* 重点 */
            -moz-perspective: 500;
            -ms-perspective: 500;
            perspective: 500;
            -ms-transform: perspective(500px);
            -moz-transform: perspective(500px);
            transform-style: preserve-3d;/* 重点 */
        }
    
        .flipper {
            position: relative;
            width: 200px;
            height: 200px;
            transition: 0.6s;
            transform-style: preserve-3d;
        }
    
        .flip-container .front,
        .flip-container .back {
            position: absolute;
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
            transform-style: preserve-3d;/* 翻转后背面不可见 */
        }
        .flip-container .info{
            backface-visibility: hidden;/* 翻转后背面不可见 */
        }
    
        .front {
            transform: rotateY(0deg);
            z-index: 2;
            background: red;
        }
    
        .back {
            transform: rotateY(-180deg);/* 初始翻转-180deg, */
            background: green;
        }
    
    
        .flip-container:hover .flipper {
            transform: rotateY(180deg);/*hover的时候翻转180deg,back刚好转到正面可见,front正面转到反面不可见*/
    
        }

  • 相关阅读:
    在 Windows 10 中创建任何大小的虚拟测试文件的 2 种方法
    最近的github又不稳了。。ip host 大法来
    windows mklink /d /h /j 精讲
    kafka-manager配置和使用
    Java——七种垃圾收集器+JDK11最新ZGC
    聚簇索引和非聚簇索引(通俗易懂 言简意赅)
    【转载】Java中的锁机制 synchronized & 偏向锁 & 轻量级锁 & 重量级锁 & 各自优缺点及场景 & AtomicReference
    都1202年了奉劝那些还在用centos6的gs,赶紧切ubuntu-Centos6 升级 gcc 惨痛教训
    Tamper Chrome – 请求修改扩展,可用于Web安全测试
    线程、线程池三大方法、七大参数、四种策略
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/10834200.html
Copyright © 2011-2022 走看看