0

我正在尝试使用 css 和 JQuery 在水平面上进行 div 翻转。我在 JSFiddle 上发现了一些代码可以非常巧妙地做到这一点,但我不明白为什么它不能在 Firefox 上运行,但可以在 Chrome 和 Safari 上运行(我目前只在 OSX 上测试过)。

http://jsfiddle.net/TLCqu/2/

CSS如下:

body {
    background: #ccc;
}
.flip {
    -webkit-perspective: 800;
    width: 400px;
    height: 200px;
    position: relative;
    margin: 50px auto;
}
.flip .card.flipped {
    -webkit-transform: rotatey(-180deg);
}
.flip .card {
    width: 100%;
    height: 100%;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: 0.5s;
}
.flip .card .face {
    width: 100%;
    height: 100%;
    position: absolute;
    -webkit-backface-visibility: hidden;
    z-index: 2;
    font-family: Georgia;
    font-size: 3em;
    text-align: center;
    line-height: 200px;
}
.flip .card .front {
    position: absolute;
    z-index: 1;
    background: black;
    color: white;
    cursor: pointer;
}
.flip .card .back {
    -webkit-transform: rotatey(-180deg);
    background: blue;
    background: white;
    color: black;
    cursor: pointer;
}

我在使用它的任何地方-moz-transform: rotateY(-180deg);之后添加-webkit-transform:。这具有使文本反转的奇怪效果,但不是 div。我不确定 webkit 中什么有效或我应该改变什么。

4

2 回答 2

1

对于 Mozilla,您需要使用-moz-. 这是您的 CSS 的更新版本:

body {
    background: #ccc;
}
.flip {
    -webkit-perspective: 800;
    -moz-perspective: 800;
    width: 400px;
    height: 200px;
    position: relative;
    margin: 50px auto;
}
.flip .card.flipped {
    -webkit-transform: rotatey(-180deg);
    -moz-transform: rotatey(-180deg);
}
.flip .card {
    width: 100%;
    height: 100%;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: 0.5s;
    -moz-transform-style: preserve-3d;
    -moz-transition: 0.5s;
}
.flip .card .face {
    width: 100%;
    height: 100%;
    position: absolute;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    z-index: 2;
    font-family: Georgia;
    font-size: 3em;
    text-align: center;
    line-height: 200px;
}
.flip .card .front {
    position: absolute;
    z-index: 1;
    background: black;
    color: white;
    cursor: pointer;
}
.flip .card .back {
    -webkit-transform: rotatey(-180deg);
    -moz-transform: rotatey(-180deg);
    background: blue;
    background: white;
    color: black;
    cursor: pointer;
}

演示:http: //jsfiddle.net/TLCqu/3/

希望这可以帮助!

于 2013-01-28T21:23:20.960 回答
0

它不适用于 Firefox,因为-webkit它仅适用于 webkit 浏览器。Firefox 使用 gecko,您需要添加 -mozilla 前缀以支持 mozilla。

查看caniuse.com以获取您正在使用的功能的浏览器支持列表。许多 CSS 3d 转换仍然是相当实验性的。

于 2013-01-28T21:23:38.650 回答