美文网首页
滚动穿透问题

滚动穿透问题

作者: 勤劳的小叶 | 来源:发表于2018-09-25 14:19 被阅读0次

问题描述

当浮层滚动触底时, 再次滑动浮层时, 浮层下面的页面会进行滚动, 即滚动穿透

解决办法

通过position: fixed将body固定在当前位置, 关闭浮层时, 再将清除该样式, 将页面滚动值设置为之前的值.

代码

  function stopBodyScroll (isFixed) {
    var top;
    if (isFixed) {
      top = document.documentElement.scrollTop || document.body.scrollTop
      document.body.style.position = 'fixed'
      document.body.style.top = -top + 'px'
    } else {
      top = -parseInt(document.body.style.top)
      document.body.style.position = ''
      document.body.style.top = ''

    // 回到原先的top
    document.documentElement.scrollTop ?  document.documentElement.scrollTop = top : document.body.scrollTop = top
    }
  }

注意

  1. 关闭浮层, 恢复滚动时, 不能不能使用document.documentElement.scrollTop的值, 由于设置了position, 其值为0, 因此需要通过top的值获取

  2. PC端可以直接通过设置body的overflow: hidden属性, 来固定底层页面, 但是该方法再移动端无效

相关文章

  • 滚动穿透问题

    问题描述 当浮层滚动触底时, 再次滑动浮层时, 浮层下面的页面会进行滚动, 即滚动穿透 解决办法 通过positi...

  • 滑轮滚动穿透问题

    滑轮滚动穿透问题 在弹层中若弹框内容过长自带滚动条,在滚动时body内容同样会滚动

  • 微信小程序用户滑动体验处理

    问题1:当页面出现弹出层,弹出层和底层均有滚动条,滚动弹出层,底层跟着滚动(滚动穿透) 处理:该问题原因是弹出层的...

  • 滚动穿透解决方案

    解决PC/移动端弹出层滚动穿透的问题。 描述 弹出层内容滚动时,body跟随滚动。 方案 法一: overflow...

  • RN Modal 滚动穿透问题

    在 js 写移动端页面时都会遇到滚动穿透,Google基本能找到的解决方案 https://github.com/...

  • 移动端滚动穿透问题

    定义:移动端弹出fixed弹窗的话,在弹窗上滑动会导致下层的页面跟着滚动,这个叫“滚动穿透” 解决方案1 在弹出层...

  • Taro 解决滚动穿透问题

    在遮罩层的最外层view 添加onTouchMove事件: 实现handleTochMove方法:

  • 移动端兼容性问题2 body和html不能禁止滚动条出现

    网页版本没有显示滚动条 但是手机端安卓和ios手机不能禁止滚动条移动端滚动穿透问题完美解决方案html body ...

  • 小程序滚动事件穿透问题

    基于目前最新的基础库版本2.4。不确定当前最新版微信是否修复此bug。 微信小程序的事件穿透被大家吐槽了很久。大致...

  • 滚动(移动端滑动)穿透问题

    在项目中遇到很多次滚动穿透问题,每一次都是看情况临时试解决方案能否可行,在这里统一总结一下 pc端model框弹出...

网友评论

      本文标题:滚动穿透问题

      本文链接:https://www.haomeiwen.com/subject/tjtloftx.html