bokovua
@bokovua
Любитель

Коррекция функциии для загрузки дополнительных записей на странице?

Здравствуйте! Помогите пожалуйста скорректировать функцию, чтобы событие происходило не после клика на блок с заданным id, а в момент, когда юзер прокрутил страницу к футеру.

jQuery(function($){
	$('#true_loadmore').click(function(){
		$(this).text('Загружаю...'); // изменяем текст кнопки, вы также можете добавить прелоадер
		var data = {
			'action': 'loadmore',
			'query': true_posts,
			'page' : current_page
		};
		$.ajax({
			url:ajaxurl, // обработчик
			data:data, // данные
			type:'POST', // тип запроса
			success:function(data){
				if( data ) { 
					$('#true_loadmore').text('Загрузить ещё').before(data); // вставляем новые посты
					current_page++; // увеличиваем номер страницы на единицу
					if (current_page == max_pages) $("#true_loadmore").remove(); // если последняя страница, удаляем кнопку
				} else {
					$('#true_loadmore').remove(); // если мы дошли до последней страницы постов, скроем кнопку
				}
			}
		});
	});
});
  • Вопрос задан
  • 17 просмотров
Пригласить эксперта
Ответы на вопрос 1
KusokBanana
@KusokBanana
Fullstack-разработчик
Вместо события нажатия поставь такое событие
Таким образом, как только футер покажется внизу экрана сработает условие
При этом оно не будет выводиться постоянно благодаря флагу seeFooter
С позицией экрана относительно футера уже можешь играться с помощью переменной размера экрана window.screen.height
var seeFooter = false;
$(window).scroll(function(){
  var $element = $('#footer');
  if ($(this).scrollTop() + window.screen.height >= $element.offset().top) {
    if (!seeFooter) {
      console.log('Футер показался снизу');
      seeFooter = true;
    }
  } else {
    seeFooter = false;
  }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы