收藏
回答

catchtouchmove影响侧滑用户体验

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 需求 客户端 6.7.2 2.2.5



我想做个如下所示的侧滑功能,在做的过程中遇到一个问题。









基于目前微信小程序提供的api, 我给了两种实现方式,但用户体验都不是很好


实现场景一:


在每个item元素上绑定了catchtouchmove后,整个页面就不会滚动了,只有在中间和旁边的间隙滑动,才会滚动,这个用户体验很不好。



实现场景二:


在每个item元素上绑定了touchmove事件,虽然整个页面可以滚动了,但是这个和item的侧滑有冲突,也就是说侧滑和页面一起动,用户体验也很不好(请参考ios的微信收藏功能)



我期望的做法是:我在item上touchmove的时候,若在y轴方向上的距离变化小于30,我认为是在侧滑,这个时候应该阻止页面滑动,只允许侧滑。否则就禁止侧滑,只允许页面上下滑动



希望可以像javascript的stopPropagation那样,可以动态设置冒泡行为。而不是直接写死catchtouchmove。



期望官方早日回答,我看其他用户也有类似的困惑,谢谢。



最后一次编辑于  2018-09-06
回答关注问题邀请回答
收藏

3 个回答

  • 马六甲
    马六甲
    2018-09-14

    这个提议非常合理,事件不可动态阻止冒泡,且还没有 disable page scroll 这样的 api, 做侧滑 tab 切换根本无法照顾用户体验,我试过N中办法了,浮层,动态设置 page 高度等等,体验都很差,因为 setData 本身就有一定延迟

    2018-09-14
    赞同
    回复
  • 强子
    强子
    2018-09-13

    就没有人用这个侧滑的功能吗? 大家可以体验下腾讯文档这个小程序,就是我说的第二种情况,用户体验很差,腾讯自己都不care这个吗?@官方

    2018-09-13
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-09-07


    你都说了。。那就用代码实现呀。。我也是这么做的。本来我左右滑动是做的按着的时候,item跟着左右滑,但是后来发现android上有一点点卡顿,让我觉得很不舒服,后来改成了滑动一定距离就展开,往回一定距离就收起

    2018-09-07
    赞同
    回复 2
    • 强子
      强子
      2018-09-07

      侧滑的时候没有办法阻止上下滑动的呀,你怎么做到的?监听onPageScroll?


      2018-09-07
      回复
    • 卢霄霄
      卢霄霄
      2018-09-07回复强子

      哦! 你用的page的滚动啊! 我用的 scroll-view~

      2018-09-07
      回复