最近在开发Nuxt项目,有个需求是实现类似探探左右滑动切换卡片功能。经过反复调试,最终实现了这个效果。
![7378045614d195f13637551d8eaa243d.png](https://i-blog.csdnimg.cn/blog_migrate/e5dc49b30451620bc1fc37103585d442.jpeg)
页面整体布局分为 顶部导航条、卡片滑动区、底部Tabbar 三个模块。
为了规范页面代码,其中卡片滑动区域单独抽离了一个组件flipcard.vue。
![9decbe0b059f389a29206fc62a52c5b9.gif](https://i-blog.csdnimg.cn/blog_migrate/c7588a6d6e575114940ddedde349bda0.gif)
下面就讲解下卡片滑动页面实现方法。
- 整体模板
![12cdcdda014152a4ae8b30b62125bfea.png](https://i-blog.csdnimg.cn/blog_migrate/3a6c4b1e91fc1a908f0c2403ff9ce7fa.jpeg)
遇见TA
项目中顶部导航栏/底部Tabbar组件,这里不作过多介绍,之前有一篇分享文章,感兴趣的可以看下。
基于Nuxt/Vue自定义Topbar+Tabbar
![90ab5e8f22146b5460ce2bf5f39b740b.png](https://i-blog.csdnimg.cn/blog_migrate/f4e8a381a87103738285251cf80f35ca.jpeg)
![0eead9201764e9eb141822551c8c1972.png](https://i-blog.csdnimg.cn/blog_migrate/bd990e7db07fda1b4d2b0f90bcbfe86f.jpeg)
- 侧边栏弹出框
侧边弹出层使用的是VPopup组件实现。其中范围滑块、switch、star等组件使用的是Vant组件库。
![6fbf9d8a67cc5ff5609ee95096252587.png](https://i-blog.csdnimg.cn/blog_migrate/4028307514d8daf416ecf881dbb1a140.jpeg)
范围{{distanceVal}}
自动增加范围
性别女生
好评度{{starVal}}星
优先在线用户
优先新用户
更新
- 仿探探卡片滑块
滑动卡片封装成了一个flipcard.vue组件。只需传入pages数据即可。支持左右拖拽滑动、滑动回弹动画、点击按钮切换等功能。
![3958d50498a2873ec62da1bc2ea1f79b.png](https://i-blog.csdnimg.cn/blog_migrate/5c7779d8f32ac55a26a0521c1723e497.jpeg)
pages支持传入的JSON数据格式。
{avatar: 'assets/img/avatar.jpg',name: '甜甜圈',sex: 'female',age: 21,starsign: '双鱼座',distance: '800米',// 照片集photos: [...],// 签名sign: 'life is like a play 人生如戏。'},
新建flipcard.vue页面
![]()
{{item.name}}
{{item.distance}}
组件中分别实现了touch和mouse事件,支持移动端和PC端滑动。
另外,点击卡片可以跳转到卡片详情页面。
![a4d11ba0495f070b4019b9a521a92f21.png](https://i-blog.csdnimg.cn/blog_migrate/8a0f9ee8c6b0a32c519096ee69c2ae38.jpeg)
okay,代码中都有一些备注,这里不作详细讲解了。有兴趣的可以去试一试哈~~
今天就分享到这里。希望对大家有所帮助!