Reputation: 992
I have written code for card flip.
Here, card flip rotation(3D rotation) is working fine in chrome, firebox, internet explorer but when i open it in safari, card flip rotation is not working perfectly.
In safari(version > 8.0.0), card is rotated but not with 3d animation.
Please let me know if any of you have any solutions.
Following is the code:
$(".btn").click(function() {
$("#card").toggleClass("flipped");
});
.container {
width: 200px;
height: 260px;
position: relative;
perspective: 800px;
-webkit-perspective: 800px;
-o-perspective: 800px;
-moz-perspective: 800px;
}
#card {
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
transition: transform 1s;
-webkit-transform-style: preserve-3d;
-webkit-transition: transform 1s;
-o-transform-style: preserve-3d;
-o-transition: transform 1s;
-moz-transform-style: preserve-3d;
-moz-transition: transform 1s;
}
#card figure {
margin: 0;
display: block;
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden;
-o-backface-visibility: hidden;
}
#card .front {
background: red;
font-size: 36px;
}
#card .back {
font-size: 36px;
background: blue;
transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
}
#card.flipped {
transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="container">
<div id="card">
<figure class="front">1</figure>
<figure class="back">2</figure>
</div>
</section>
<button class="btn"><span>Flip card</span>
</button>
Upvotes: 4
Views: 4104
Reputation: 15951
you forgot to add prefix in webkit and other browsers
-webkit-transition: -webkit-transform 1s;
$(".btn").click(function() {
$("#card").toggleClass("flipped");
});
.container {
width: 200px;
height: 260px;
position: relative;
perspective: 800px;
-webkit-perspective: 800px;
-o-perspective: 800px;
-moz-perspective: 800px;
}
#card {
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
transition: transform 1s;
-webkit-transform-style: preserve-3d;
-webkit-transition: -webkit-transform 1s;
-o-transform-style: preserve-3d;
-o-transition: -o-transform 1s;
-moz-transform-style: preserve-3d;
-moz-transition: -moz-transform 1s;
}
#card figure {
margin: 0;
display: block;
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden;
-o-backface-visibility: hidden;
}
#card .front {
background: red;
font-size: 36px;
}
#card .back {
font-size: 36px;
background: blue;
transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
}
#card.flipped {
transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="container">
<div id="card">
<figure class="front">1</figure>
<figure class="back">2</figure>
</div>
</section>
<button class="btn"><span>Flip card</span>
</button>
Upvotes: 1