2017-09-06 63 views
9

Od Chrome 61 mam wiele problemów z przewijaniem poleceń jQuery 3.2.1. Nie przewija się już.Chrome 61 przewijanie jQuery już nie działa

Chrome daje mi powiadomienie o konsoli (ostatnia aktualizacja strony to 12, 2017).

Miga odłożył zadanie, aby przewijanie przebiegło płynniej. Wykonanie zadań z timerem i siecią powinno trwać mniej niż 50 ms, aby tego uniknąć. Aby uzyskać więcej informacji, zobacz numery https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/rail i https://crbug.com/574343#c40.

Przykład:

console.log("start"); 
$('body').animate({ 
    scrollTop : $('#id').offset().top - 100 
},3000,function(e) { 
    console.log("end"); 
}); 

Czy ktoś ma pomysł co jest przyczyną i co mogę z tym zrobić?

Odpowiedz

10

Wydaje się, że przelew jest ustawiony na HTML w aktualnej wersji (jak w -moz. Sprawdź this question które zrobiłem podczas gdy Go)

$(function() { 
    console.log("start"); 
    $('html').animate({ 
     scrollTop: $('#my-id').offset().top - 100 
    }, 3000, function(e) { 
     console.log("end"); 
    }); 
}); 

https://jsfiddle.net/4ebggecv/

Albo można dodać te style i przechowywać animowanie ciało

html { 
    overflow: hidden; 
    height: 100%; 
} 
body { 
    height: 100%; 
    overflow: auto; 
} 

https://jsfiddle.net/ykyt58ac/1/

+3

Nie otrzymałem ostrzeżenia, jak zaznaczono w pytaniu, ale po prostu zmieniono je z '$ ('body'). Animate (...)' na '$ ('html'). Animate (...)' naprawiono mój problem. Stało się to problemem po Chrome 61 –