
今天教大家写一下滑动菜单
我这里使用的mpvue的写法,基于vue语法开发的小程序框架。
明确思路
1 确定每页所需的数据 这里是10条
2 进行数据截取
3 进行渲染
下面给大家分享下代码 有不明白的可以私信我
1 数据
注意:我是用mpvue 所以数据直接放在了
data(){
return{
}
} 里
type: [
{
id: 0,
name: '餐饮'
},
{
id: 1,
name: '零食烟酒'
},
{
id: 2,
name: '购物'
},
{
id: 3,
name: '住房'
},
{
id: 4,
name: '交通'
},
{
id: 5,
name: '娱乐'
},
{
id: 6,
name: '汽车'
},
{
id: 7,
name: '通讯'
},
{
id: 8,
name: '育儿'
},
{
id: 9,
name: '人情'
},
{
id: 10,
name: '医疗'
},
{
id: 11,
name: '旅行'
},
{
id: 12,
name: '投资'
},
{
id: 13,
name: '投资亏损'
},
{
id: 14,
name: '借出'
},
{
id: 15,
name: '还债'
},
{
id: 16,
name: '利息支出'
},
{
id: 17,
name: '其他'
}
],
newType: [
]
2 封装截取数组的方法
created () { // mpvue的create生命周期
let a = (function (arr, length) { // 形参接收方才传入的值
var _arr = [] // 定义一个新数组
while (arr.length) { 循环总数据的长度
_arr.push(arr.splice(0, length)) // 把截取到的数组push到_arr数组里
}
return _arr // 返回新的数组
})(this.type, 10) // 传两个参数 this.type是所有数据 10是截取的个数 (我们要10条)
this.newType = a // 新的数组直接赋值给在data里定义的空数组
console.log(this.newType.length) // 这个length就是页数了
console.log(this.newType) // 这个就是分好的数组
// 这个方法的前提是必须掌握 数组的splice方法 就是截取数组
[splice方法](http://www.w3school.com.cn/jsref/jsref_splice.asp)
}
console.log(this.newType.length) // 这个length就是页数了
console.log(this.newType) // 这个就是分好的数组
3 渲染
<swiper class="swiper" indicator-dots="true" autoplay="true" interval="5000" duration="1000">
<block v-for="(item, index) in newType" :index="index" :key="key">
<swiper-item class='swiper_item'>
<div class='type_item' v-for="(v, i) in item" :index="i" :key="key">
{{v.name}}
</div>
</swiper-item>
</block>
</swiper>
简单来说就是
假如我有18条数据
那么我每个页面需要10条
又因为 一个页面是一个swiper-item 所以需要知道循环出两个swiper-item 这个咋们已近实现了
接着一个swiper-item里有10条 那么就必须要一个长度为10的数组 这个咋们刚才已经打印到了
咋们根据总数据截取除了两个数组 一个长度为10 一个为8 所以就有两个页面 第一个页是10条 第二个也就是8条
这时 你再去把总数=数据多加几条 页就会自己叠加…
看不懂的话去小程序官网看看这个swiper组件 是什么?
好了 就这样
版权声明:本文为qq_41595212原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。