2012-10-27 33 views
15

Ben $("body").animate({scrollTop: someValue}); aradığınızda istediğim $(window).scroll(function() { }); çok çağrılacak. Bunu nasıl başarabilirim?

Ben başarılı olamadı $(window).trigger("scroll") ve $(window).triggerHandler("scroll") ile çalıştılar.

The code

DÜZENLEME: Sorun çözüldü. soruna neden benim $(window).scroll(function() { }); bir if vardı.

+0

animationType nedir? Ve eğer 'easeIn' gibi ters virgüllerin içinde animationType kullanırsanız? – 2619

+0

@ al0neevenings Sorun bu değil. Gövde bölümü kaydırır, ancak '$ (window) .scrollU();' çağrılmıyor. – Sawny

+1

ayrıca scroll' yapıyor 'bağlı neyi yöntemi yayınlayabilir? –

cevap

7

hem body ve tutarlı değildir olarak html .. uygulayınhttp://jsfiddle.net/vzyVh/

de

$("html, body").animate({scrollTop: someValue}); 

demo (örneğin FF krom body kullanır iken kaydırma için html kullanır)

+0

1) benim sorunu çözmek değil mi ... çalıştırmak için işlev engelledi eğer bir vardı. 2) Ardından geri arama iki kere aranır. – Sawny

+0

@sawny, sadece CSS'nizi hem "html" hem de "body" öğelerinin kaydırmasına izin verdiyseniz. Varsayılan olarak, yalnızca bir tanesi kayar. Ek olarak: 'window'na uygulanan' scroll' yöntemi sadece bir kez çağrılmaz. Her kaydırma adımı için çağrılır .. –

+1

Bu cevabı, zemine zarif kaydırma yapmak için http://stackoverflow.com/a/12792245/1504300 ile karıştırın. – reallynice

1

Sen kodunun altına deneyebilirsiniz - burada ben id "birini" vardır benim div etiketi üstüne kaydırma ediyorum.

$('html,body').animate({ scrollTop: $('#one').offset().top }, 'slow');