Это потому, что все скрыто, пока не сработает первое событие прокрутки. Чтобы это исправить, вы можете вручную вызвать событие прокрутки при первой загрузке страницы, чтобы отобразить элементы section
, которые уже видны в области просмотра.
$(document).on("scroll", function () {
// your code here...
}).trigger('scroll');
Стоит также отметить, что scroll
Обработчик событий срабатывает для каждого пикселя , который вы прокручиваете. Поскольку такая производительность важна, поэтому стоит оптимизировать эту функцию обработчика.
var $tags = $("section");
var winHeight = $(window).height();
$(document).on("scroll", function() {
var pageTop = $(document).scrollTop();
var pageBottom = pageTop + winHeight;
$tags.each(function() {
this.classList.toggle(this.offsetTop < pageBottom)
});
}).trigger('scroll');
$(window).on('resize', function() {
winHeight = $(this).height();
});