jQuery scroll() detect when user stops scrolling

前端 未结 13 1632
情歌与酒
情歌与酒 2020-11-22 02:17

Ok with this..

$(window).scroll(function()
{
    $(\'.slides_layover\').removeClass(\'showing_layover\');
    $(\'#slides_effect\').show();
});
13条回答
  •  眼角桃花
    2020-11-22 02:48

    ES6 style with checking scrolling start also.

    function onScrollHandler(params: {
      onStart: () => void,
      onStop: () => void,
      timeout: number
    }) {
      const {onStart, onStop, timeout = 200} = params
      let timer = null
    
      return (event) => {
        if (timer) {
          clearTimeout(timer)
        } else {
          onStart && onStart(event)
        }
        timer = setTimeout(() => {
          timer = null
          onStop && onStop(event)
        }, timeout)
      }
    }
    

    Usage:

    yourScrollableElement.addEventListener('scroll', onScrollHandler({
      onStart: (event) => {
        console.log('Scrolling has started')
      },
      onStop: (event) => {
        console.log('Scrolling has stopped')
      },
      timeout: 123 // Remove to use default value
    }))
    

提交回复
热议问题