#javascript #jquery
Вопрос:
Как я могу только console.log(finalPercentage); когда значение отличается от того, что было раньше?
Каждый раз, когда я прокручиваю его, консоль регистрирует одно и то же число примерно 43 раза, пока оно не изменится. Я просто хочу, чтобы это утешало.запишите номер, когда он изменит значение.
Возможно ли это?
scroll.on('scroll', (position) => {
let pageHeight = $('body').height() - $(window).height();
let scrollPos = position.scroll.y;
let scrollPercentage = (scrollPos * 100) / pageHeight;
let finalPercentage = Math.ceil(scrollPercentage);
console.log(finalPercentage);
}
Ответ №1:
Вы используете общедоступную переменную.
let prevValue = null;
scroll.on('scroll', (position) => {
let pageHeight = $('body').height() - $(window).height();
let scrollPos = position.scroll.y;
let scrollPercentage = (scrollPos * 100) / pageHeight;
let finalPercentage = Math.ceil(scrollPercentage);
if(prevValue == finalPercentage) return;
prevValue = finalPercentage;
console.log(finalPercentage);
}
Ответ №2:
Да, это возможно. Вам просто нужно отслеживать последнее значение, а затем сравнивать его каждый раз, когда вы хотите решить, выводить его на консоль или нет. Вот так:
let lastValue = 'Some initial value';
scroll.on('scroll', (position) => {
let newValue = 'Get new value';
if (lastValue != newValue)
console.log(newValue);
lastValue = newValue;
});