2012-05-03 12 views
6

kaydırılan her XX piksel için bir proje için mükemmel jQuery Reel eklentisi (http://jquery.vostrel.cz/reel) kullanıyorum. Ben kaydırdığı yukarı animasyon tersine eğer eklenti diyelim 1 kare ilerleme sayfa aşağı kaydırdığı her 10px, kaydırılan böylece zaman, pencere kaydırma olayına bağlamak istiyorum.jQuery pencere kaydırma olayı.

eklentisi hiçbir sorun değerleri geçirmek yöntemleri vardır ve ben pencere kaydırma olayına bağlamak biliyorum. Benim mücadele ettiğim son şey.

nasıl jQuery/JavaScript animasyon herhangi dikey yönde ilerleme 1 çerçevedeki kaydırılan her 10 piksel için söylenecek kullanabilirim? Ben bir değişkene pencere kaydırma saklayabilirsiniz biliyorum ama 10 peşin bir kare birkaç katını vurur her zaman söylemek nasıl emin değilim.

Şimdiden çok teşekkürler. Bir çözüm çalıştı altında

DÜZENLEME

sayesinde kullanıcıların yardımcı olur. aşağıdaki gibi:

$(window).scroll(function() 
{ 
    windowScrollCount = $(this).scrollTop(); 
    animationFrame  = Math.round(windowScrollCount/100); 
}); 

Yani burada ben ("çerçeve" animationFrame) animationFrame çerçevelerle çevirerek ve .reel ile geri ayarı, windowScrollCount kaydırılan mesafeyi alıyorum; Aslında her 100 kare için bunu her 10 hızlı olduğu için yapıyorum. Mümkün sayfanızın üstüne yapışkan bir eleman olabilir

cevap

5

Teşekkür ve noShowP Bir çözüm çalıştı:

var jump = 500; // consider this is your 10px 
window.scrollHeight = 0; 
$(window).scroll(function() { 
    console.log($(this).scrollTop()); 
    var diff = $(this).scrollTop() - window.scrollHeight; 
    if (diff >= jump) { 
     window.scrollHeight = $(this).scrollTop(); 
     console.log('reload frame'); 
    } 
}); 

Demo: Eğer yanılıyorsam

1

,

pozisyon: fixed; üst 0; sol: 0;

(İsterseniz gizli).

Sonra da izleyebilir kaydırma vardır onun offset:

$('element').offset().top 

Ardından bu yüzden kaydırma her zaman üst değerdir ve tetikleyici olaylar ne olduğunu görmek, size kaydırılan ne kadar ileri Sayfanın altındaki görebilirsiniz appropiately?

DÜZENLEME: Ben size gereken ne düşündüğünü bir başlamasıyla biraz JSfiddle kurdum

.

http://jsfiddle.net/qJhRz/3/

Im sadece üzerinde ve saklanması bir değişkende olması gerekiyor çerçeveyi hesaplanması. Aradığın gibi bir şey mi? codef0rmer ait yardım etmek http://jsfiddle.net/Dyd6h/

+0

Cevabınız için teşekkürler, ama istediğimi değil. Gereksinimi daha açık hale getirmek için yukarıdaki son paragrafı güncelledim. – mtwallet

+0

Daha önce hiç makara kullanmamıştım, zaten bir çerçeveyi nasıl ilerleteceğini biliyor musunuz ve 10px her kaydırıldığında bu olayları nasıl arayacağınızı bilmeniz gerekiyor mu? – noShowP

+0

Burada doğru satırlarda olduğunuzu düşünüyorum, çerçeve sayısını bir değişkene referans gösterebilirim. Sadece scrollTop'un 10, ardından 30'unun ne zaman vuracağını, bir kareyi (veya çerçeve değişkenine bir tane) nasıl eklediğini anlamamıştım. Şimdi anlamaya başladım, yardım için teşekkürler – mtwallet

3

o zaman bu isteyebilirsiniz. aşağıdaki gibi:

$(window).scroll(function() 
{ 
    windowScrollCount = $(this).scrollTop(); 
    animationFrame  = Math.round(windowScrollCount/100); 
}); 

Yani burada ben ("çerçeve" animationFrame) animationFrame çerçevelerle çevirerek ve .reel ile geri ayarı, windowScrollCount kaydırılan mesafeyi alıyorum; Aslında her 100 kare için bunu her 10 hızlı olduğu için yapıyorum.

+0

codef0rmer Cevabınız için teşekkür ederiz. İstediğim şey tam olarak değil, ancak şimdi nasıl başarabileceğimi anlamaya başladım. Temelde scrollTop her 10 kez 20, sonra 30 vuruyor bir kare ilerler. – mtwallet

+0

codef0rmer Yardımın için teşekkürler, çalıştım, lütfen yukarıdaki cevabımı görün. – mtwallet

+0

@mtwallet: Soğuk! Memnun kaldım. – codef0rmer