滾動eventListener with throttle or passive:true

我正在努力為我的用戶創造最好的滾動體驗。當用戶向下滾動頁面時,我會創建粘性元素。我使用IntersectionObserver API來檢測元素何時在視口中。

但有一件事我不確定。我應該如何以最佳方式處理滾動事件?

我應該使用這樣的debounce函數嗎:

const debounce = (func, wait, immediate) => {
    let timeout;
    return function () {
        let context = this,
            args = arguments;
        let later = () => {
            timeout = null;
            if (!immediate)
                func.apply(context, args);
        };
        let callNow = immediate && !timeout;
        clearTimeout(timeout);
        timeout = setTimeout(later, wait);
        if (callNow)
            func.apply(context, args);
    };
}
  
window.addEventListener('scroll', debounce(() => {
   // Run function
}, 150));

或者我應該像這樣使用passive: true

window.addEventListener('scroll', () => {
   // Run function
}, {
    passive: true
});

還是組合?

? 最佳回答:

當您確信處理程序中永遠不需要preventDefault時,1-passive選項可以設置為true。

2-反跳的使用(通常意味著“僅在經過一段時間后才考慮排放值”)完全取決于用例,例如,在執行某些邏輯之前,反跳可以很好地滿足暫停排放的需要。

主站蜘蛛池模板: 精品人无码一区二区三区| 麻豆视频一区二区三区| 在线一区二区观看| 精品视频一区二区三区在线播放| 无码免费一区二区三区免费播放| 美女视频免费看一区二区| 亚洲一区二区三区在线网站| 国产在线精品一区二区不卡麻豆| 日韩久久精品一区二区三区 | 国产精品免费视频一区| 国产伦精品一区二区三区视频猫咪 | 国产精品xxxx国产喷水亚洲国产精品无码久久一区| 性无码免费一区二区三区在线| 国产精品一区二区三区99| 动漫精品第一区二区三区| 国产高清精品一区| 国产精品夜色一区二区三区| 香蕉一区二区三区观| 精彩视频一区二区三区| 无码丰满熟妇一区二区| 久久久无码一区二区三区| 午夜DV内射一区二区| 亚洲av无码一区二区三区乱子伦 | 日本精品一区二区三区在线视频| 成人区人妻精品一区二区三区 | 亚洲一区在线视频观看| 亚洲一区二区三区免费视频| 无码欧精品亚洲日韩一区| 99久久综合狠狠综合久久一区| 亚洲V无码一区二区三区四区观看| 精品无码人妻一区二区三区不卡 | 无码人妻精品一区二区三区9厂| 精品爆乳一区二区三区无码av| 老熟妇仑乱一区二区视頻| 国产在线乱子伦一区二区| 无码一区二区三区AV免费| 白丝爆浆18禁一区二区三区| 国产观看精品一区二区三区 | 丝袜美腿一区二区三区| 国产成人一区二区三区电影网站 | 国产精品亚洲一区二区三区|