Я пытаюсь добавить класс к элементу, когда он находится в окне просмотра. Я достиг этого, но это вызывает серьезные проблемы с работой моего сайта при прокрутке.Обнаружение элементов анимации в представлении
настоящее время у меня этот JavaScript:
//Cache reference to window and animation items
var $animation_elements = $('.animation-element');
var $window = $(window);
$window.on('scroll resize', check_if_in_view);
$window.trigger('scroll');
function check_if_in_view() {
var window_height = $window.height();
var window_top_position = $window.scrollTop();
var window_bottom_position = (window_top_position + window_height);
$.each($animation_elements, function() {
var $element = $(this);
var element_height = $element.outerHeight();
var element_top_position = $element.offset().top;
var element_bottom_position = (element_top_position + element_height);
//check to see if this current container is within viewport
if ((element_bottom_position >= window_top_position) &&
(element_top_position <= window_bottom_position)) {
$element.addClass('in-view');
} else {
$element.removeClass('in-view');
}
});
}
Так как вы можете видеть, функция check_if_in_view()
, кажется, постоянно стреляя время загрузки страницы прокручиваются, и я считаю, что это может быть причиной того, что производительность может быть так Плохо.
Есть ли более эффективный способ добавления класса при прокрутке страницы, которая не вызывает проблем с производительностью на моем сайте?
См. Http://stackoverflow.com/questions/28397804/if-element-is-in-viewport-stop-scroll-animation – guest271314