2012-10-27 23 views
15

Gdy zadzwonię pod numer $("body").animate({scrollTop: someValue});, chcę również, aby wywoływano $(window).scroll(function() { });. Jak mogę to osiągnąć?

Próbowałem z $(window).trigger("scroll") i $(window).triggerHandler("scroll") bez powodzenia.

The code

Edycja: problem rozwiązany. W moim $(window).scroll(function() { }); pojawił się kod if, który spowodował problem.

+0

co to jest animationType? A co, jeśli użyjemy animationType w cudzysłowach, takich jak "easeIn"? – 2619

+0

@ al0neevenings To nie jest problem. Sekcja body przewija, ale '$ (window) .scrollU();' nie zostaje wywołana. – Sawny

+1

możesz również napisać, co robi metoda związana z "scroll"? –

Odpowiedz

7

być stosowana zarówno body i html ponieważ nie jest zgodne .. (na przykład FF wykorzystuje html przewijania, a chrom stosuje body)

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

prezentację nahttp://jsfiddle.net/vzyVh/

+0

1) Nie rozwiązuje mojego problemu. 2) Następnie wywołanie zwrotne zostanie wywołane dwa razy. – Sawny

+0

@Sawny, tylko jeśli specjalnie wykonałeś swój CSS, aby umożliwić przewijanie zarówno html jak i body. Domyślnie tylko jeden z tych zwojów. Dodatkowo: metoda 'scroll' zastosowana do' okna' nie jest wywoływana tylko raz. Jest wywoływany dla każdego przewijanego kroku. –

+1

Wymieszano tę odpowiedź z http://stackoverflow.com/a/12792245/1504300, aby uzyskać płynne przewijanie na dół. – reallynice

1

Można spróbować poniżej kodu - jestem tutaj przewijanie do początku mojego div id tag, który ma "jeden".

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