';
var bg=u ? '#141414 url("'+u+'") center / cover no-repeat' : dummy(hue);
html+='
';
if(top){
@@ -1054,6 +1066,14 @@ function renderDeck(){
host.innerHTML=html;
var topEl=host.querySelector('.x-card.top');
if(topEl) topEl.addEventListener('pointerdown', onDown);
+ if(settle){
+ requestAnimationFrame(function(){ requestAnimationFrame(function(){
+ host.querySelectorAll('.x-card').forEach(function(el){
+ el.style.transition='transform .45s cubic-bezier(.22,1,.36,1)';
+ el.style.transform=cardTransform(+el.dataset.i);
+ });
+ });});
+ }
}
function fling(dir){
@@ -1062,14 +1082,15 @@ function fling(dir){
X.anim=true;
var topEl=document.querySelector('#xDeck .x-card.top');
if(topEl){
- topEl.style.transition='transform .28s ease';
+ topEl.style.transition='transform .3s cubic-bezier(.4,0,.7,1), opacity .3s ease';
topEl.style.transform='translateX('+(dir*640)+'px) rotate('+(dir*640/22)+'deg)';
+ topEl.style.opacity='0';
}
setTimeout(function(){
if(dir>0 && post) X.liked.push(post.id);
X.idx++; X.dx=0; X.imgIdx=0; X.anim=false;
- renderDeck();
- },280);
+ renderDeck(true);
+ },300);
}
function onDown(e){
@@ -1093,7 +1114,7 @@ function onDown(e){
var d=ev.clientX-sx;
if(Math.abs(d)>110){ fling(d>0?1:-1); return; }
X.dx=0;
- topEl.style.transition='transform .28s ease';
+ topEl.style.transition='transform .45s cubic-bezier(.22,1,.36,1)';
topEl.style.transform='translateX(0) rotate(0)';
if(likeB) likeB.style.opacity=0;
if(skipB) skipB.style.opacity=0;
@@ -1108,8 +1129,17 @@ function onDown(e){
document.querySelectorAll('.x-tab').forEach(function(el){
el.addEventListener('click',function(){
- X.tab=el.dataset.tab; X.idx=0; X.dx=0; X.imgIdx=0;
- renderTabs(); renderDeck(); animateHood(centerOf(X.tab), halfOf(X.tab));
+ if(X.tab===el.dataset.tab) return;
+ var k=el.dataset.tab;
+ var deckEl=document.getElementById('xDeck'), blurEl=document.getElementById('xBlur');
+ animateHood(centerOf(k), halfOf(k));
+ deckEl.style.transition='opacity .18s ease';
+ deckEl.style.opacity='0'; blurEl.style.opacity='0';
+ setTimeout(function(){
+ X.tab=k; X.idx=0; X.dx=0; X.imgIdx=0;
+ renderTabs(); renderDeck(true);
+ deckEl.style.opacity='1'; blurEl.style.opacity='1';
+ },180);
});
});
window.addEventListener('resize',function(){