这种情况是因为iscroll屏蔽了原生的操作使用了event.preventDefault();所以我们可以针对这个判断是否需要调用这个方法,在iscroll源码里可以找到_start和_move防范,里面都有event.preventDefault()
_start方法:
_move
if ( this.options.preventDefault ) { // increases performance on Android? TODO: check!
if(!($(e.target).hasClass('eventNotDo') && (Math.abs(this.distX) > Math.abs(this.distY) + this.options.directionLockThreshold))){
e.preventDefault();
}
}
我们可以做个判断在不需要的时候跳过这个屏蔽,其中(Math.abs(this.distX) > Math.abs(this.distY) + this.options.directionLockThreshold)是用来判断是否是水平滑动,因为这里的案例是iscroll里面用到了原生的水平滑动不起作用