【问题标题】:CSS Card flip creating unwanted response when rotating backCSS Card翻转在旋转时产生不需要的响应
【发布时间】:2015-06-08 04:18:21
【问题描述】:

这是一个简单的卡片翻转。正面写着“FIRST”。 当我将鼠标悬停在 div 上时,卡片会翻转到背面,当鼠标离开时,卡片会翻转回正面。

此时,当鼠标即将离开时,卡片立即显示正面反转,然后旋转回到正常方向。我相信它在即将旋转回来时会跳过 0.6s 的过渡。

这里是JSFiddle

想法?
CSS:

    h1{
        margin: 0;
        padding: 0;
      }
    .container{
        margin: auto;
        left: 34%;
        top: 20%;
        position: relative;
      }
    .card{
        text-align: center;
        width: 300px;
        height: 300px;
        -webkit-backface-visibility: hidden;
        transition: all 0.6s ease-in-out;
        position: absolute;
        text-align: center;
        line-height: 300px;
      }
     .card:hover{
        transform-style: preserve-3d;
        transform: rotateX(180deg);
      }
     .front{
        border: 2px solid;
        border-radius: 25px;
        position: absolute;
        background: red;
        width: 100%;
        height: 100%;
        -webkit-backface-visibility: hidden;
       }
     .back{
        border: 2px solid;
        border-radius: 25px;
        position: absolute;
        background: blue;
        transform: rotateX(180deg);
        width: 100%;
        height: 100%;    
        -webkit-backface-visibility: hidden;
       }

HTML:

<div class='container'>
    <div class='card'>
        <div class='front'>
            <h1>First</h1>
        </div>
       <div class='back'>
            <h1>Last</h1>
       </div>
    </div>
</div>

【问题讨论】:

    标签: css


    【解决方案1】:

    元素的背面始终是透明背景,.front.back 类中已经提到了 backface 属性。 .card css 中不需要。

    从卡片类中移除了背面。

    .card{
        width: 300px;
        height: 300px;
        transition: all 0.6s ease-in-out;
        position: absolute;
        text-align: center;
        line-height: 300px;
      }
    

    http://jsbin.com/ruhofereza/2/

    【讨论】:

    • 试过了,没效果。
    【解决方案2】:

    请设置卡片翻转的 3D 透视图。请将此代码添加到容器 div 中。

    -webkit-perspective: 1000;
    

    喜欢这个

     .container{
    -webkit-perspective: 1000;
    }
    

    【讨论】:

    • 这确实改变了动画的外观,但是倒“第一”字的错误仍然发生
    【解决方案3】:

    将背面可见性更改为可见
    并将 transform-style: preserve-3d; 移动到 .card 类
    如果有一个地方可以使用这种风格,那就在这里。
    这是JSFiddle

      .card{
        text-align: center;
        width: 300px;
        height: 300px;
        -webkit-backface-visibility: visible;
        -moz-backface-visibility: visible;
        backface-visibility: visible;
        transition: all 0.6s ease-in-out;
        position: absolute;
        text-align: center;
        line-height: 300px;
        transform-style: preserve-3d;
      }
    

    【讨论】:

    • 向 .card 类添加背面可见性没有任何改变
    • 你的问题是倒序写法?
    • 是的。一旦即将翻转回来,而不是背面慢慢旋转以露出正面,正面立即倒转显示,然后转回正常方向。
    • 查看 JSFiddle 链接我做了一些更改,看看你想要什么
    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2018-02-13
    相关资源
    最近更新 更多