mpvue小程序仿qq左滑置顶删除组件

前端之家收集整理的这篇文章主要介绍了mpvue小程序仿qq左滑置顶删除组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

背景:

前几天,公司的一个小程序项目开发的时候,遇到了一点点问题。设计师这狗币要让我在小程序上实现类似QQ左滑置顶删除的操作,心里mmp,我就是一个刚来公司三天的小小前端实习生而已,我想学习....当然刚刚来就被公司委以重任,也能看出本人技术过人,尤其是作为一个大二刚刚结束的学生来说。废话不多说,对于这个功能,第一反应就是百度,不百度不得了,一百度吓一跳。前辈们也来都做过。“那我不是直接照搬就行,开心”。开开心心的用mpvue上手之后,心里mmp,mpvue的坑这么多。。。。还不如自己动手撸一个,效率还更快。

我们先来看看效果图,有图有真相:

效果图:

实现:

1,上面说过mpvue的坑,比如里面的每一个的元素都是overflow:hidden,并且似乎都继承了display:block。(看小程序开发工具是这样的,具体源码没看,就只能猜猜)。所以主要解决是让元素overflow:scroll,这个主要是看效果的时候会用到

2,左滑和右滑,这又是一个坑。本以为mpvue的滑动事件会和vue的一模一样。开开心心的按着原来想法撸,发现怎么滑都滑不动,果断打印一波数据,发现滑动事件大有奥妙!

3,布局方面我采用的是rpx+flex。

4,点击时候置顶与取消置顶是通过json数据的top实现的。删除是用数组的splice()方法

5,滑动效果是css动画控制的。

下面直接贴代码:如果看不懂可以嫌麻烦可以去我的github:nofollow" href="https://github.com/JB-Chen/mpvue-slide">https://github.com/JB-Chen/mpvue-slide

程序员大佬们,觉得可以就给个star,以资鼓励一下!

HTML代码

主要的HTML代码

{{item.name}}
{{item.sonName}}
{{item.time}}
置顶
    {{item.name}}
    {{item.sonName}}
{{item.time}}
置顶
删除

css代码

js主要代码:

import card from '@/components/card' export default { data () { return { userInfo: {},commitInfo:[ { img:"http://img3.imgtn.bdimg.com/it/u=3067730600,935028889&fm=27&gp=0.jpg",name:"旺财",sonName:"今晚去吃饭吗?",time:"19:08",infoNum:"9",top:false,type:0 },{ img:"http://img1.imgtn.bdimg.com/it/u=1257196754,3171363795&fm=27&gp=0.jpg",name:"前端学习群",sonName:"hanber:异步与同步的问题",time:"02:08",infoNum:"99+",{ img:"https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1672209094,624238697&fm=27&gp=0.jpg",name:"小学同学",sonName:"好久不见,最近好吗?",{ img:"https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1312347818,1612941824&fm=200&gp=0.jpg",name:"老妈",sonName:"啥时候回家一趟呀?",time:"23:08",infoNum:"1",{ img:"http://img2.imgtn.bdimg.com/it/u=1093392508,3329264726&fm=27&gp=0.jpg",name:"AD动漫群",sonName:"ghost:《你的名字》求资源",type:0 } ] } },components: { card },methods: { // 滑动开始 touchStart(e){ // 获取移动距离,可以通过打印出e,然后分析e的值得出 this.startX = e.mp.changedTouches[0].clientX; },// 滑动结束 touchEnd(e,index){ // 获取移动距离 this.endX = e.mp.changedTouches[0].clientX; if(this.startX-this.endX > 10){ for(let i=0;i { wx.getUserInfo({ success: (res) => { this.userInfo = res.userInfo } }) } }) },// 置顶 top(index){ this.commitInfo[index].top = !this.commitInfo[index].top; this. recover(index); },// 删除 delect(index){ this.commitInfo.splice(index,1); } },created () { // 调用应用实例的方法获取全局数据 this.getUserInfo() } }

总结

以上所述是小编给大家介绍的mpvue小程序仿qq左滑置顶删除组件。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

原文链接:https://www.f2er.com/vue/31221.html

猜你在找的Vue相关文章