小程序longpress的bug及其解决

个人小程序中,用到一个长按修改的功能,设计是这样的,短按tap,长按longpress小程序

image

可是,偶尔出现长按无效的状况。我本身都常常碰到,今天仔细研究,用半天时间反复寻找,重现,发现问题和内存或别的因素无关,最有多是事件引发的。我发现,这种操做下,长按无效会大几率出现:微信

把列表上拖,使分隔线位于屏幕上沿,手尽可能按分割线,这时,不会出现长按后的弹出菜单。再日后,就是长按无效。但tap依然有效。学习

并且,通常过一段时间,又正常了。设计

学习文档,发现:blog

长按原来的事件是longtap,问题就不少,和tap总是冲突,才致使又用这个新事件事件

longpress的处理是,若是350毫秒内没有处理,将触发tap,不然不触发tap。内存

加上又是冒泡事件,状况更加复杂。文档

对于效果,我比较不满意。一方面,要手抬起来后,才触发tap事件,另外长按和tap没有关联,和正常习惯也不一致。我看微信自己的处理是,按在列表上,马上有点中的响应,再过一小会,弹出菜单。get

通过反复试验,找到一个接近微信的解决方案it

image

捕获两个事件,按下事件直接处理选中,并记录timestamp,tap事件处理是否弹出菜单。可能比微信稍晚点(要手起来才出菜单),但也算接近了。

相关文章
相关标签/搜索