屏蔽微信下拉出黑底现象

Posted 永恒的浪荡时光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了屏蔽微信下拉出黑底现象相关的知识,希望对你有一定的参考价值。

由于公司接触微信页面较多,

所以一度被微信下拉出黑的这种情况生无可恋,

所以花了较长时间去实践了各种方法(一脸懵逼.jpg)

好吧,经过各种傻逼的方法尝试后,发觉竟然还是可以简单解决的,一脸憋屈...

普遍流传的方法是屏蔽掉 body 的 touchstart 或 touchmove 事件,但也会让所有滚动不可用,只适用部分页面

所以我就把重心放在了如何让滚动依旧可用上,乃至屏蔽所有的事件自写一个滚动容器(弹性拖动和避免卡顿要疯...)

而后来发现,直接屏蔽掉当 scrollTop 在顶部时的 touchmove 不就好了吗,真是走了好多弯路

function stopDrop(stillCanScroll) {
  var lastY;
  $("body").off().on(‘touchstart.stop‘, function(event) {
    lastY = event.originalEvent.changedTouches[0].clientY;
  }).on(‘touchmove.stop‘, function(event) {
    var y = event.originalEvent.changedTouches[0].clientY;
    var st = $(stillCanScroll).scrollTop();
    // 向上滚动且滚动条位于顶部,屏蔽事件
    if (y > lastY && st < 5) {
      event.preventDefault();
      return false;
    }
    lastY = y;
  });
}

该怎么去评价这段代码吗,反正不高效就对了,

正在实践多个 stillCanScroll 的情况,但又实在害怕检测该元素 touchstart 而造成的事件混淆,

理论上确实能解决出黑底的问题,但依旧不能根除,而且还把下拉刷新刷新的功能搞没了。

就这样吧,这个问题解决办法的寻求将抗日持久....

以上是关于屏蔽微信下拉出黑底现象的主要内容,如果未能解决你的问题,请参考以下文章

解决ios微信移动端的position: fixed; 支持性不好的问题 && 禁用下拉暴露黑底的功能

极品代码一般人我不告诉他,手机端h5播放时不自动全屏代码

前端开发微信下通过url获取Code,分享出去后,code怎么失效了?

微信H5单页面滑动的时候如何避免出界,出现头部和底部的黑底?

quickhybridAPI多平台支撑的实现

js禁止微信浏览器下拉显示黑底查看网址,不影响内部Scroll