Добавить 1, когда страница, прокрутите вниз

Я использую следующий код для добавления 1 к переменным js. но это всегда показывает один и тот же результат.

Javascript

$(window).scroll(function() {
  var lmp = 5,
      lma = 0;
       if($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
          $('.div').append('<div></div><div></div><div></div><div></div><div></div>');
         lmp++;
         lma++;
       console.log(lmp +" : "+ lma);  
       }
   });

jsfiddle: - https://jsfiddle.net/n75epL5u/ проверьте результаты на консоли

3 ответа

Решение

Объявите ваши переменные вне вашего события прокрутки. В противном случае вы инициализируете их на каждом свитке.

var lmp = 5, lma = 0;
$(window).scroll(function() {
  if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
    $('.div').append('<div></div><div></div><div></div><div></div><div></div>');
    lmp++;
    lma++;
    console.log(lmp + " : " + lma);
  }
});

Причина, почему ваш код не работает?

Каждый раз, когда вы прокручиваете переменные, объявляются.

Решение

Переместите объявление переменной за пределы функции.

var lmp = 5,
    lma = 0;
  $(window).scroll(function() {

    if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
      $('.div').append('<div></div><div></div><div></div><div></div><div></div>');
      lmp++;
      lma++;
      console.log(lmp + " : " + lma);
    }
  });

Скрипка Демо

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

;(function() {
   var lmp = 5, lma = 0;

   $(window).scroll(function() {
       if ($(document).height() - 50 <= $(window).scrollTop() + $(window).height()) {
       $('.div').append('<div></div><div></div><div></div><div></div><div></div>');
       lmp++;
       lma++;
       console.log(lmp + " : " + lma);
   });
}());
Другие вопросы по тегам