Как мне только утешить.регистрируйте, когда значение отличается от предыдущего значения?

#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;
});