透视CSS3不起作用

时间:2015-01-04 20:33:53

标签: javascript html angularjs css3

我正在尝试在X轴方向上开发卡片翻转动画。截至目前,div现在只需使用rotateX()方法旋转。我尝试使用透视属性到上部div,而不是工作它扭曲我的div结构。既然,这只是一个工作阶段,我只针对谷歌浏览器。 请在codepen上查看。

这是我的HTML代码。

<div class="wrapper">
                <div class="upper">
                    <div class="upper-current">
                        <div class="content">
                            1
                        </div>
                    </div>
                    <div class="upper-next">
                        <div class="content">
                            2
                        </div>
                    </div>
                </div>

                <div class="lower">
                    <div class="lower-current">
                        <div class="content">
                            1
                        </div>
                    </div>
                    <div class="lower-next">
                        <div class="content">
                            2
                        </div>
                    </div>
                </div>
            </div>

我的CSS, div.row {                 宽度:150px;                 身高:200px;                 保证金:0自动;             }

        div.wrapper{
            background-color: #444;
            width: 150px;
            height: 200px;
            border-radius: 5px;
            position:relative;

        }

        div.wrapper div.upper, div.wrapper div.lower{
            height: 100px;
            width:100%;

        }

        div.upper-current{
            transition :all 1s;
            transform-origin: 50% 100%;
        }

        div.wrapper > div.upper > div, div.wrapper > div.lower > div{
            height: 100px;
            width:100%;
            position:absolute;
            top:0;
            overflow:hidden;
            text-align:center;
            background-color:#444;
        }

        div.wrapper > div.upper > div{
            border-bottom: 3px solid #333;
        }

        div.wrapper > div.lower > div{
            height: 200px;
        }

        div.upper-current{
            z-index: 4;
        }

        div.upper-next{
            z-index: 3;
        }

        div.lower-current{
            z-index: 2;
        }

        div.lower-next{
            z-index: 1;
        }

        div.content{
            position: relative;
            top: -24px;
        }

我正在努力实现这种效果。 Top edge is larger, it looks like coming out.

但是根据我的代码,我只是在喋喋不休。 Plain rotate effect.

1 个答案:

答案 0 :(得分:1)

<强>更新 这个codepen也适用于firefox。由于堆叠环境问题,我刚刚提出.upper relative并给它一个z索引,因此它会高于.lower

如果您将perspective CSS属性放在.wrapper上,它应该有效:codepen

Perspective会创建一个新的堆叠上下文,因此如果您将其放在.upper上,则所有上层<div> z-index不再相同因为自然的HTML堆叠,因此较低的上下文和较低的上下文位于顶部。