问题描述
在使用小程序的时候基本的页面的一般都是很简洁的,所以会有一些菜单来做简单的诠释说明,或者是提供一些选项。这些菜单的弹出方式一般是向上和向下,那么如何来设置这些上下拉的菜单呢?
解决方案
上下拉菜单在微信小程序中起提示、选项的功能,当点击它时会弹出属于这个菜单的相应选项。使用vant组件库,将 dist 文件提前下载好然后保存到项目中。在小程序中调用组件库,并在正确引用就可以实现了菜单功能了。
一、下拉菜单
(1)在 json 中调用 van-tab 组件。
"usingComponents": { "van-dropdown-menu": "/dist/dropdown-menu/index", "van-dropdown-item": "/dist/dropdown-item/index", }
表 1 json代码
(2)在 js 中对菜单进行设置。
option:设置菜单内容;
value:设置菜单内容的排列顺序。
Page({ data: { option1: [ { text: ' 白色; S', value: 0 }, { text: ' 白色; M', value: 1 }, { text: ' 白色; L', value: 2 } ], value1: 0, }, });
表 2 js代码
( 3 ) 在 wxml 中实现。
A ctive-color 设置选中状态颜色;
V alue设置排列顺序;
O ption菜单内容。
<van-dropdown-menu active-color="#ee0a24"> <van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" /> </van-dropdown-menu>
表 3 wxml代码
图 1 效果图
二、上拉菜单
(1)在 json 中调用 van-tab 组件。
"usingComponents": { "van-action-sheet": "/dist/action-sheet/index" }
表 4 json代码
( 2 )在 js 中对菜单进行设置。
name:设置菜单选项;
subname : 设置副标题;
color:设置颜色。
Page({ data: { show: false, actions: [ { name: ' 选项 ' }, { name: ' 选项 ' }, { name: ' 选项 ', subname: ' 副文本 ', openType: 'share' } ] }, onClose() { this.setData({ show: false }); }, onSelect(event) { console.log(event.detail); } });
表 5 js代码
( 3 ) 在 wxml 中实现。
<van-action-sheet>: 设置上来菜单;
bind:select="onSelect" : 选中选项时触发,禁用或加载状态下不会触发;
bind:close="onClose" : 关闭时触发。
<van-action-sheet show="{{ show }}" actions="{{ actions }}" bind:close="onClose" bind:select="onSelect" />
表 6 wxml代码
图 2 效果图
结语
设置上下拉菜单可以使小程序界面简洁,在设置菜单的时候要注意对菜单内容和排列顺序设置正确。菜单跟其他的组件有一点点不同菜单一般是在 js 里面进行配置,可以根据需要在 js 中对菜单进行设置。菜单设置的标签有很多,需要理解记忆并运用。