2016-03-29 35 views
0

Aşağıdaki animasyonu jquery animate kullanarak bir eleman üzerinde yapıyorum. Animasyon başlamadan önce mesafe değeri değişir, böylece animasyon özellik değerini güncellemek istiyorum. Bunu nasıl yapabilirim? Gösterildiği gibi start geri arama işlevini kullandım, ancak animasyonu güncelleştirmiyor.Animasyon başlamadan önce animasyonu güncelle

el.delay(delay).animate({ 
    top: -distance 
},{ 
    duration:700, 
    start:function(e){ 
     e.props.top = -($(e.elem).offset().top - $(".navigation").offset().top); 
} 
}) 
+3

Başlangıcı veya paramın başlangıcında '(+ px)' – Rayon

+0

birimini kaçırıyorsunuz sanırım? –

+0

"css özellikleri" ni atarsanız her yerde – Rayon

cevap

0

Animasyon roikliğinin anında nasıl güncelleneceği konusunda bir cevap bulabildim. start, animasyon başladığında tetiklendiği bir geri aramadır, ancak props nesnesine yapılan değişiklikler animasyona yansıtılmaz! Bunun için step geri arama idealdir ve her animasyon adımında fx nesnesini değiştirelim. Anladığım çözüm aşağıdadır. İlk adım ateşlendiğinde

el.delay(delay).animate({ 
    top: -distance + 'px' 
},{ 
    duration:700, 
    step:function(now,fx){ 
     if(now == 0){ 
      fx.end = -($(fx.elem).offset().top - $(".navigation").offset().top); 
     } 
    } 
}) 

Ben prop değerini değiştirmek ve ondan sonra ben diğer adımları görmezden. Bana yardım eden herkese teşekkür ederim! :)

İlgili konular