2016-03-21 24 views
3

ReactCSSTransitionGroup ile çalışacak animasyonları alamıyorum. Aşağıdaki stilleri ileReactCSSTransitionGroup animasyonu çalışmıyor

<ReactCSSTransitionGroup 
    transitionName="fader" 
    transitionEnterTimeout={500} 
    transitionLeaveTimeout={500}> 
    {React.cloneElement(children, { 
    key: pathname 
    })} 
</ReactCSSTransitionGroup> 

:

.fade-enter { 
    opacity: 0.01; 
} 
.fade-enter.fade-enter-active { 
    opacity: 1; 
    transition: opacity 500ms ease-in; 
} 
.fade-leave { 
    opacity: 1; 
} 
.fade-leave.fade-leave-active { 
    opacity: 0.01; 
    transition: opacity 500ms ease-in; 
} 

Ben DOM-girin ve bırak stilleri hem bakarsak rota değişiklikleri uygulanıyor ama sadece-girin Aşağıdaki kod var stiller hareketli. Rotalar arasında hızla tıklarsam, çıkış animasyonu görünür, ancak önceki rotalar için. Yani A -> B -> A'ya gidersem, A'ya geri döndüğümde animasyon kısaca titreyecek.

+0

Bunu rotalarla kullanıyorsanız, React tuşları ile karıştırılabilir. KlonElement'in, çocukların ve anahtarların yollarda düzgün bir şekilde nasıl uygulanacağına dair bir açıklama için [bu gönderi] bölümüne bakın (https://medium.com/front-end-hacking/react-page-transition-animations-9d18c90a9831#.bl1qmuamy). – wintvelt

+0

@wintvelt Teşekkürler, anahtarlar düzgün bir şekilde kurulmuştu, sadece eski div tarafından yeni div tarafından ekran dışına taşındı. – mrberggg

+0

@mrberggg Aynı şeyi uygulamak zorundayım. Rota değişikliği için sayfa geçişi eklemelisiniz. kodunu yazdığınız yer neresidir? –

cevap

2

Tamam, animasyonu uygulanmaktan çıkıyor ancak div kapalı. Hata. Bir önceki sayfanın izinli bir animasyona sahip olmasını istiyorsanız, rotaları canlandırırken, position:absolute veya ekranda tutmak için benzer bir şey eklemeniz gerekir.

+0

Bu konu hakkında daha fazla bilgi ve nasıl çözüldüğünü ekleyebilir misiniz? –

+2

@DavidPelayo Tabii. Yeni bileşen girdiğinde, eski öğenin önüne yerleştirilir ve böylece bir sayfa durumunda eski sayfa aşağı doğru itilir, burada yalnızca yeni sayfa pencere yüksekliğinden daha kısa olduğunda görülür. Eski sayfayı canlandırmak istiyorsanız, ilk önce görünür hale getirin, ör. pozisyonu kullanarak: mutlak; '. Daha sonra normal gibi hareket etmeye devam edebilirsiniz. Umarım yardımcı olur. – mrberggg