Флип-карта TweenMax
Я только что услышал о GSAP сегодня и поиграл с ним около 6 часов (что, кстати, УДИВИТЕЛЬНО!) У меня все работает, кроме случаев, когда я хочу перевернуть карту, ее оборотная сторона не появляется, я искал по всей сети в поисках сообщения с той же проблемой, но безуспешно.
Осматривая элементы, я думаю, что проблема заключается в том, что когда #testCard
вращается дети divs (#front
а также #back
) не поворачивается и браузер думает, что это лицо #front
что показывает, но я понятия не имею, как это решить!
Взгляните на эту демонстрацию, нажмите на поле и увидите проблему!
вот код, который я использовал для этого:
HTML:
<div id="flipContainer">
<div id="testCard">
<div id="front">Front</div>
<div id="back">Back</div>
</div>
</div>
CSS:
#flipContainer{
width:200px;
height:100px;
background-color:#EEE;
position:absolute;
top:100%;
left:50px;
margin-top:-150px;
z-index:99999999999999999999999999999;}
#testCard{
width:100%;
height:100%;
position:absolute;
cursor:pointer;
overflow:hidden;}
#testCard div {
display: block;
position: absolute;
width: 100%;
height: 100%;}
#front{
background-color:#F00;}
#back{
background-color:#00F;}
JQuery: (JS)
TweenMax.set('#flipContainer, #testCard',{
perspective:1000
});
TweenMax.set($('#testCard'),{
boxShadow:'0 0 10px #000',
borderRadius:'10px',
transformStyle:'preserve-3d',
transformOrigin:'center center 50'
});
TweenMax.set('#testCard div',{
backfaceVisibility:'hidden'
});
TweenMax.set('#back',{
rotationY:-180
});
TweenMax.set($('#flipContainer'),{
borderRadius:'10px'
});
var flipped=false;
$('#testCard').click(function(){
if(!flipped){
TweenMax.to($(this),1,{
rotationY:180,
onComplete:function(){
flipped=true;
}
});
}
else{
TweenMax.to($(this),1,{
rotationY:0,
onComplete:function(){
flipped=false;
}
});
}
});
1 ответ
Так как никто не ответил после нескольких часов игры с проблемой, я обнаружил, что проблема была из-за атрибута CSS, который я дал #testCard
, overflow:hidden;
Я убрал его, и он работал как хотелось!