noet2 系统Android4.1.1版本中js touchmove事件只执行一个的问题
先是有一块文字,可能比较长,我就在作容器的div
上写样式为overflow:scroll
, 以为这样就能用手指触摸滚动了,拿来小米1S一试,通过。结果后来同事找来,说他的手机不行。研究半天,在StackOverflow上看到 Android 3.0之后才开始支持触摸滚动,想在2.x系统上实现还得自己写JS实现。一看他的手机,2.3.5。OK,写JS嘛,好说。
事先我已经知道触摸事件的触发机制,所以很自然的就去侦听touchstart
,touchend
,touchmove
。结果,不行,滚不起来。我以为自己记错了,去MDN上查了查,没错;又猜是事件用错了,尝试touchleave
和touchcancel
,也不行;2.x的系统不能装Chrome,测试也不好搞。后来终于通过输出发现,touchmove
只触发一次,然后Google之,原来Android设计的机制就是只触发一次,想要自主控制事件结束的时机只能event.preventDefault()
。这……难道touchmove
不是对应mousemove
么?