第一次加载页面无法滚动问题(iscroll, input)
发布于 4 年前 作者 na67 1274 次浏览 来自 分享

这两天在改一个bug,主要是iscroll引起的。

设备ios: 在一个长form的页面上,屏幕最下面的input,点击弹出键盘,有时会出现键盘收起页面无法滚动问题。出现这个问题主要是用了iscroll引起的,其次是这个页面的表单很多。

最终,还是放弃用iscroll,这时又出现第一次进来这个页面滚动不了。overflow-y: scroll,无法滚动??这时又一再百度,一再尝试。为什么呢?为什么第一次进来才无法滚动呢?在确定不是样式上的问题后,开始怀疑是不是iscroll影响了?虽然这个页面的iscroll去掉了,但是其它页面的iscroll还依然在用。后面,我把上级页面的iscroll也去掉后,就能正常滚动了!!!那就是它的问题了。但是修复一个bug要改那么多东西是不对的,所以我决定上级页面的iscroll给它destroy掉(以下代码)

iscroll.destroy()
iscroll = {}


但是不是没有用??难道destroy也没用,后面又重新检查了这个组件,后面里面用了

  document.addEventListener('touchmove', function touchmoveHandle(e){
  pred ? e.preventDefault() : ''
}, isPassive() ? {
    capture: false,
    passive: false
  } : false);


现在是不是可以知道点什么呢? !!!就是上面的touchmove,preventDefault影响了,禁止了默认事件。所以这时,只需要在destroy后把上面的事件也清掉就可以~


这篇文章,主要是为了自己留个底~ ~~能看懂就最好~~

回到顶部