微信小程序中,经常可见选择地区或者商品分类或者其他的分类,选择后显示,选择后删除
先介绍一下主要功能:点击 ‘地区’ ,下面选择区域出现,点击 ‘选择地区’ 中的按钮,上面 ‘已选地区’ 显示选择的地区,点击 ‘x’ 已选的地区就取消,点击 “完成” 整个选择区域隐藏,只留下地区。
整体样式用的弹性布局,就不细说了。
wxml:
地区 已选地区 完成 //这是按钮右上角的关闭图片 选择地区
js:
var chosedarea = []; var area = []; Page({ data: { a:false, tabindex:0, array: ["北京", '南京', '上海', '天津', '杭州', '云南', "北京", '南京', '上海', '天津', '杭州', '云南',"北京", '南京', '上海', '天津', '杭州', '云南'], }, // 选地区 tabarea:function(e){ this.setData({ tabindex:e.currentTarget.dataset.index }); var id = e.currentTarget.dataset.index; var name = e.currentTarget.dataset.name; chosedarea.push(name); this.setData({ "area": chosedarea }) }, // 取消已选地区 shut:function(e){ this.setData({ index: e.currentTarget.dataset.index, name : e.currentTarget.dataset.name }); var yid = e.currentTarget.dataset.index; var yname = e.currentTarget.dataset.name; chosedarea.splice(yid,1) this.setData({ "area": chosedarea }) }, // 点击完成隐藏 finish:function(){ var that = this; if (that.data.a == true) { that.setData({ a: false }) } }, // 点击地区显示 show:function(){ var that = this; if (that.data.a == false) { that.setData({ a: true }) } }, })
css
.container{ width: 100%; height: 300rpx; } .choose{ width: 100%; } .buttond{ width: 88%; padding: 0; height: 68rpx; line-height: 68rpx; font-size: 32rpx; margin-bottom: 10rpx; } .area{ display: flex; flex-direction: column; margin: 0 20rpx; } .chos{ display: flex; flex-wrap: wrap; margin-top: 15rpx; } .button{ width: 22%; padding: 0; height: 68rpx; line-height: 68rpx; font-size: 32rpx; margin: 0 10rpx; margin-bottom: 10rpx; } .view{ display: flex; flex-wrap: wrap; height: auto; margin: 0 20rpx; } .position{ width: 24%; } .chosedtop{ display: flex; justify-content: space-between; margin: 0 30rpx 15rpx }
如果是选完 上面添加了对应的 下面可选择的与之对应的要隐藏掉 就这样:
js中
// 选地区 tabarea: function (e) { let that = this; that.setData({ tabindex: e.currentTarget.dataset.index }); var id = e.currentTarget.dataset.index; var name = e.currentTarget.dataset.name; chosedarea.push(name); that.data.array.splice(id, 1); that.setData({ "area": chosedarea, "array": that.data.array }) },
在上面点击删除的话 下面可选择的区域要对应的添加上:
wxml:
地区 已选地区 完成 选择地区
js
var chosedarea = []; var area = []; Page({ data: { a: false, tabindex: 0, array: ["北京", '南京', '上海', '天津', '杭州', '云南', "新疆", '黑龙江', '东北', '威海', '宁夏', '广西', "西安", '山东', '青岛', '济南', '烟台', '蓬莱'], }, // 选地区 tabarea: function (e) { let that = this; that.setData({ tabindex: e.currentTarget.dataset.index }); var id = e.currentTarget.dataset.index; var name = e.currentTarget.dataset.name; chosedarea.push(name); that.data.array.splice(id, 1); that.setData({ "area": chosedarea, "array": that.data.array }) }, // 添加回 addName:function(e){ let that = this; console.log(e) that.setData({ index: e.currentTarget.dataset.index, }) var aname = e.currentTarget.dataset.name; chosedarea.splice(that.data.index,1); that.data.array.push(aname); that.setData({ "area": chosedarea, "array": that.data.array }) }, // 取消已选地区 shut: function (e) { this.setData({ index: e.currentTarget.dataset.index, name: e.currentTarget.dataset.name }); var yid = e.currentTarget.dataset.index; var yname = e.currentTarget.dataset.name; chosedarea.splice(yid, 1) this.setData({ "area": chosedarea }) }, // 点击完成隐藏 finish: function () { var that = this; if (that.data.a == true) { that.setData({ a: false }) } }, // 点击地区显示 show: function () { var that = this; if (that.data.a == false) { that.setData({ a: true }) } }, })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。