H5移动端滚动穿透

加 fixed

弹出层show的时候给bodyfixed
弹出层hide的时候把bodyfixed去掉

加指令

{
    directives: {
      fixed: {
        inserted () { //被绑定元素插入父节点时调用
          let scrollTop = document.body.scrollTop || document.documentElement.scrollTop
          document.body.style.cssText += 'position: fixed; width: 100%; top: -' + scrollTop + 'px;'
        },
        unbind () { //指令与元素解绑时调用
          let body = document.body
          let top = body.style.top
          body.style.top = ''
          body.style.position = ''
          document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top)
          
        }
      }
    }
}
  • 使用方法
<div  v-if="isShow" v-fixed>
    ....
</div>

须使用v-if来隐藏和展示弹窗,因为依赖于dom的插入和注销,使用v-show不行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容