这两天在改一个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后把上面的事件也清掉就可以~
这篇文章,主要是为了自己留个底~ ~~能看懂就最好~~