最近要用Vue来进行开发,想到前一段时间投入了支付宝小程序的开发,使用到了久违的双向绑定语法,这次又开始使用Vue,居然还有点小亲切。
从写点什么下手呢?想着想着,移动端H5怎么也得有个轮播图吧,于是立马就打开了新浪首页,盯着它的轮播,抄袭了起来。
分析
新浪首页的轮播用了大名鼎鼎的Swiper组件,支持左右滑、无限轮播等特性。对着devTool观察了一整个轮播后,对它的实现方式有一定的了解了。
- 通过CSS translate属性,把每一帧按顺序排在同一行中,设置定时器改变当前显示的帧
- 处理用户滑动的事件
- 在首帧前增加一帧尾帧的备份,在尾帧后加一帧首帧,以达到无限轮播的效果
实现
1 | <template> |
完工
自己的Swiper实现的很粗糙,也没有市面上的已有的组件那般功能强大,不过作为一个练手的小东西,还是很实在啦。
写的过程中没有最后贴代码这么顺利,遇到了许多问题:比如怎么区分点击和滑动;事件的绑定与解绑;vue的computed、method有啥不一样;镜像的那两帧什么时机变成真实的两帧等等。最后好赖都解决了,也算顺利完成。
PS:现在的日子,啥都写一点,就比如小程序和Vue,也不知道上手的顺序是不是搞错了。是该先写小程序呢,还是先写Vue呢?