я пытаюсь сделать счетчик на веб-сайте, который находится внизу веб-страницы, когда я использовал
$(document).on('scroll',function(){
if ($(window).scrollTop()>1200){
$('.counting').each(function() {
$(this).prop('Counter', 0).animate({
Counter: $(this).text()
}, {
duration: 2000,
easing: 'swing',
step: function(now) {
$(this).text(Math.ceil(now));
}
})
})
}
})
но это вызывает запуск кода при каждой прокрутке после того, как значение прокрутки превышает 1200
как я могу сделать это, используя только jquery?
jQuery и IntersectionObservers — это JavaScript.
я не знал об этом .. спасибо :) я проверю и отвечу
Кроме того, не могли бы вы немного рассказать нам о своей цели? Вы хотите, чтобы счетчик запускался, когда он прокручивается в поле зрения?
Вы пробовали: $(document).off('scroll');
? (внутри >1200
) Или просто установите флаг снаружи, который проверяет, запускался ли он уже один раз.
Вы можете использовать подключаемый модуль jQuery Viewport Checker
, чтобы проверить, находится ли элемент внутри области просмотра. Это даст вам возможность настроить функцию обратного вызова, которая может быть полезна для достижения вашей цели.
если я хочу запустить это только один раз, то?
@FrazAbbas Есть возможность запустить код только один раз, когда целевой элемент находится в области просмотра. Прочтите документ, в частности, о части функции обратного вызова.
Используйте IntersectionObserver :)