2012-01-03 21 views
17

Używam tego kodu:jquery animować scrollTop funkcja nie działa w Internet Explorer

$('#goto_introduction_divcontent').click(function(){  
    var targetOffset = $('#introduction_div').offset().top;  
    $('html, body').animate({scrollTop:targetOffset}, 'slow');  
    if ($.browser.msie){  
     document.documentElement.scrollTop = targetOffset; 
    } 
}); 

Ale to nie działa w przeglądarce Internet Explorer. Mój jsFiddle to here.

+0

Podaj wersję przeglądarki, jeśli uważasz, że jest to problem związany z przeglądarką. btw To działało dobrze na FF3.6 i IE8. –

+0

w chrome i fireboxie działa dobrze, ale w IE7 i IE9 nie działa –

Odpowiedz

45

Działa to dla mnie w IE8 +:

$('body, html').animate({ scrollTop: 0 }, 'slow'); 

Może twoja wypowiedź IF rzuca rzeczy off?

+4

Life saver! Wypróbowałem każdą kombinację window.parent, window.parent.document, window.parent.document. $ ("Body") itd., Ale nie myślałem o wypróbowaniu html dopóki nie zobaczyłem tego - html działa w IE, body works we wszystkich innych przeglądarkach wspieramy :) – ClarkeyBoy

+0

Mogę potwierdzić Widzę, że działa to w wielu przeglądarkach. Obawiam się, że może nie być tak efektywny, jak to możliwe, i że być może jest jakiś sposób, aby sprawdzić wsparcie animacji w pierwszej kolejności i odpowiednio wybrać tag. Ale ponieważ nie mam na to czasu, przegłosuj! Działa w szczypie! – dudewad

+0

Dodanie selektora "html" zrobiło to za mnie. Dzięki! –

Powiązane problemy