一个简单的FlipCard应用程序。该应用在Chrome中运行良好,但在Safari中无效。在Safari中,点击后,可以看到卡背面的文字,它会闪烁,然后消失。
代码的想法来自这个链接:w3schools/howto/css-flip-card
HTML:
<div class='flip-card'>
<div class='flip-card-inner'>
<div class='flip-card-front'><p>1</p></div>
<div class='flip-card-back'><p>2</p></div>
</div>
</div>
CSS:
.flip-card {
perspective:1000px;
-webkit-perspective:1000px}
.flip-card-inner {
position:relative;
transition:transform 0.8s;
-webkit-transition:-webkit-transform 0.8s;
transform-style:preserve-3d;
-webkit-transform-style:preserve-3d}
.flip-card-front, .flip-card-back {
position:absolute;
backface-visibility:hidden;
-webkit-backface-visibility:hidden;}
.flip-card-back {
transform:rotateY(180deg);
-webkit-transform: rotateY(180deg);}
JS:
$('#flash-card-game').on('click',function(){FlipToBack()});
function FlipToBack(){
$('#flash-card-game').css("transform","rotateY(180deg)");
$('#flash-card-game').css("-webkit-transform","rotateY(180deg)");
setTimeout(FlipToFront,1000);}
function FlipToFront(){
$('#flash-card-game').css("transform","rotateY(0deg)");
$('#flash-card-game').css("-webkit-transform","rotateY(0deg)");}
任何帮助,将不胜感激。
请试试这个
$('#flash-card-game').on('click', function() {
FlipToBack()
});
function FlipToFront() {
$('#flash-card-game').removeClass("flip-to-back");
$('#flash-card-game').addClass("flip-to-front");
}
function FlipToBack() {
$('#flash-card-game').addClass("flip-to-back");
setTimeout(FlipToFront, 1000);
}
Write the folowing CSS
.flip-to-front {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
.flip-to-back {
-webkit-transform: rotateY(180deg);
transform: rotateY(180deg);
}
对于其他人来说,这是我在经过几天的反复试验后找到的解决方案。我的问题没有提供错误的真正原因。我在父容器中有一个背景图片:
.flip-card-inner {background:url('image.png') no-repeat top}
这导致卡背面的文本在iPad上的Safari中翻转后闪烁并消失。
我将背景图像从父容器移动到前面和后面的元素。
.flip-card-front, .flip-card-back {background:url('image.png') no-repeat top}
然后它在iPad上的Safari中没有问题。