Skip to content

Latest commit

 

History

History
145 lines (140 loc) · 1.85 KB

scroll.md

File metadata and controls

145 lines (140 loc) · 1.85 KB

QA

  • 技巧:禁止蒙层底部页面跟随滚动

    既然我们要阻止页面滚动,那么何不将其固定在视窗(即position: fixed),这样它就无法滚动了,当蒙层关闭时再释放。
    当然还有一些细节要考虑,将页面固定视窗后,内容会回头最顶端,这里我们需要记录一下,同步top值。
    let bodyEl = document.body
    let top = 0
    
    function stopBodyScroll (isFixed) {
      if (isFixed) {
        top = window.scrollY
    
        bodyEl.style.position = 'fixed'
        bodyEl.style.top = -top + 'px'
      } else {
        bodyEl.style.position = ''
        bodyEl.style.top = ''
    
        window.scrollTo(0, top) // 回到原先的top
      }
    }