ребят, есть такая задача
Есть сайт, который наполнен секциями .section, в зависимости от видимой секции нужно добавлять/убирать класс для body .theme-dark/.theme-light
написал для этого jquery но со временим (проскрольте к футеру и обратно) она тормозит анимацию смены бг для боди
вот пациент
avto116.com/scroll
полагаю, что кривой js
как можно такое пофиксить и сделать лучше? за вознаграждения думаю договоримся
function isVisible( row, container ){
var elementTop = $(row).offset().top,
elementHeight = $(row).height(),
containerTop = container.scrollTop(),
containerHeight = container.height() - 300;
return ((((elementTop - containerTop) + elementHeight) > 0) && ((elementTop - containerTop) < containerHeight));
}
$(window).scroll(function(){
$('.js-theme-contrast-dark').each(function(){
if(isVisible($(this), $(window))) {
$('body').removeClass('theme-light').addClass('theme-dark');
};
});
$('.js-theme-contrast-light').each(function(){
if(isVisible($(this), $(window))) {
$('body').removeClass('theme-dark').addClass('theme-light');
};
});
});