小程序中类抖音的交互实现方案

首先思考一个问题,如果想要在小程序中实现抖音上下切换、拥有漂浮物按钮等怎么办? 这个问题从 18 年 9 月开始一直让我头痛到睡不着觉,历时八个月,中间有过微信的更新,有过我们自己的努力,终于把这个坑爬出来了。下面会逐一做解决问题的分析,如果想看结果可以直接跳到结尾。 作为稍微有一点经验的前端,看到这道题的时候可能会代入传统网页的思想。 pageScrollTo式 准备 N 个视频容器,在容器上做滑动、点击等事件监听,touchStart 时记录手指 XY 轴,结束时 diff XY 轴判断滑动方向然后调用 pageScrollTo 页面的滚动,滚动到上一个或下一个容器的位置。当然了,这是最基础的想法,且先不说touchStart 到touchEnd 件单靠 XY 轴改变值来判断是否滚动这样的触发条件可靠,视频一多起来实例简直要卡上天,并且如果想要实现手指拖多少视频容器滚动多少,就需要频繁调用 setData,这在小程序中是一个相当高危的操作,即使做了节流性能依旧好不到哪里去,IOS 上可能通过 transition 来让他看起来不卡顿但是有段落感,…

封装小程序 wx.request 添加token

先说一下为什么不使用fly.io,目前 fly.io 更大的方向还是为了多环境同步时做准备,一套代码适应 h5、native、weex 和小程序,这样看上去貌似确实使用它会方便很多,介于现在小程序和 mpvue 挖下的坑,想要在小程序上完美模拟浏览器时的 vue 并不好做,而且 fly.io 的小程序版本中的思路基本也是类似工厂模式,依靠 promise 来封装 wx.requeset,提供统一对外的拦截器,那么问题来了,我经手的项目中大量使用 token 来认证,而存储 token 的时候小程序和网页的接口是全然不同的,需要额外复杂的代码来同时适配多端的存储接口,对于我这个项目只有 3 周的开发周期而言肯定是不划算的... 那么先直接放封装部分的代码 // // The Code By DayiTech FrontEnd // Author:Han // Created At 2018/…