微信小程序下拉选择

article/2025/10/8 8:42:29

微信小程序中下拉框选择一般的交互方式有以下两种

  1. 直接下拉选择
  2. 点击选择框后,弹出浮层进行选择

下边分别介绍两种方式的实现。在微信小程序中,这两种实现都需要修改三个文件

js 文件:下拉选择逻辑的具体实现
wxml 文件:下拉组件引入、定义
wxss 文件:下拉框样式设计

直接下拉选择

在 wxml 中定义所有选择项

使用这种方式需要为每一项都绑定点击事件
wxml内容如下。
其中 bindShowMsg 处理的是选择之后需要显示的内容;
class:select_box 为所有可选择项,每一个选择项上绑定的点击事件mySelect 来处理选择某一项之后的逻辑。

<view class='list-msg'>下拉框<view class='list-msg2' bindtap='bindShowMsg'><text>{{tihuoWay}}</text></view>下拉需要显示的列表<view class="select_box" wx:if="{{select}}"><view class="select_one" bindtap="mySelect" data-name="重庆分店">重庆分店</view><view class="select_one" bindtap="mySelect" data-name="东莞南城分店">东莞南城分店</view><view class="select_one" bindtap="mySelect" data-name="东莞总店">东莞总店</view></view>
</view>

在 wxss 中进行样式定义

.list-msg {padding: 0 20rpx;background-color: #fff;position: relative;
}.list-msg1 {height: 60rpx;display: flex;align-items: center;justify-content: space-between;
}.list-msg .list-msg2 {height: 60rpx;display: flex;align-items: center;justify-content: space-between;border: 1px solid #ccc;padding: 0 10rpx;
}.select_box {background-color: #eee;padding: 0 10rpx;width: 93%;position: absolute;top: 130rpx;z-index: 1;overflow: hidden;animation: myfirst 0.5s;
}
.select_one {height: 60rpx;line-height: 60rpx;border-bottom: 1px solid #ccc;
}

js 中进行事件处理,为了节省篇幅,下边这个 js 内容,把默认的方法都去掉了。
js 文件中
首先需要在 data 中定义 tihuoWay:页面上显示的内容由这个字段决定
select:控制下拉列表要不要展示,select 字段和点击事件进行 bindShowMsg 绑定,当触发点击时,select 值为 false,显示下拉框。

下拉框中的每一项和 mySelect 绑定,点击选项的时候对 tihuoWay,select 字段设置值,点击完成选择项就可以展示在页面上

Page({/*** 页面的初始数据*/data: {tihuoWay: "门店自提",select: false,},swiperChange: function (e) {// console.log(e)if (e) {let current = e.detail.current;let source = e.detail.source;if (source === "touch") {this.setData({index: current,});}}// console.log(this.data.index)},bindShowMsg() {this.setData({select: !this.data.select,});},mySelect(e) {var name = e.currentTarget.dataset.name;this.setData({tihuoWay: name,select: false,});},
});

效果图如下:
wxml中定义下拉项

在js文件中定义下拉项

数据项的定义除了在 wxml 中写死,也可以在 js 文件中定义,如果在 js 文件中定义数据,在 wxml 中就需要进行数据遍历,实现方法略有不同。在js中定义数据更为灵活,可支持动态数据展示。

在选择的内容展示部分和上边是一样的,只在下拉框展示有所不同。下拉框中使用
wx:for 指定要遍历的数据
data_arr 在 js 的 data 中定义好,wxml 中使用 data_arr 时,通过"{{}}"方式获取对应的数据,

<view class='list-msg'>下拉框<view class='list-msg2' bindtap='bindShowMsg_js_data'><text>{{show_data_from_js}}</text></view>下拉需要显示的列表<view class="select_box" wx:if="{{select_from_js}}"><view wx:for="{{data_arr}}" wx:key="unique"><view class="select_one" bindtap="select_js_data" data-name="{{item}}">{{item}}</view></view></view>
</view>

js 中增加绑定方法的实现

bindShowMsg_js_data() {this.setData({select_from_js: !this.data.select_from_js})},select_js_data(e) {var name = e.currentTarget.dataset.nameconsole.log(name)this.setData({show_data_from_js: name,select_from_js: false})},

效果图如下
data中定义数据

弹出浮层选择框

有时候为了交互更友好,页面布局清晰,会把下拉框的选择放到浮层中,内容更清晰明了。对于这种情况,微信小程序提供了picker组件,
在官方文档中,有提供五种类型的picker组件,如普通选择器,多列选择器,时间选择器,日期选择器和省市区选择器。在使用时只需指定mode就可以记性类型选择。

<picker mode="multiSelector">

如果不需要使用默认的类型,也可不指定mode,此处给出的是不指定mode使用。
picker模块中,bindchange是绑定的点击事件
value是页面点击选择项时获取到的数据索引
range为需要遍历的数据

<view class="boder"><text>弹出浮层</text>
</view>
<view class="list-msg"><view class="select_title_view"><view>下拉框</view></view><view class="select_page_view"><picker class="list-msg2" bindchange="select_pop_data" value="{{type_index}}" range="{{type_desc_arr}}"><view class="picker">{{type_desc}}</view></picker></view>
</view>

如上的xml中,用的数据包括value中的{{type_index}}、range中的{{type_desc_arr}}、以及最终要展示的{{type_desc}}
注意:所有在js中定的数据,如果需要在xml中使用,都需要通过{{}}进行引用
针对上边用到的数据和绑定事件在js中进行定义

data: {type_index:0,type_desc_arr: ["年","月","日"],type_name_arr: ["year","month","day"],type_desc: "default 月"},select_pop_data(e) {let _this = thislet type_name = _this.data.type_name_arr[e.detail.value]let type_desc = _this.data.type_desc_arr[e.detail.value]_this.setData({type_name: type_name,type_index: e.detail.value,type_desc: type_desc});_this.refresh_chart();},

展示效果如下
弹出浮层展示
此处只给出了两种基本的下拉弹窗,且数据格式也不复杂,对于复杂情况,只需要根据数据场景修改一般也能满足。


http://chatgpt.dhexx.cn/article/xNau4COd.shtml

相关文章

小程序——下拉选择框组件

一、效果 二、说明 最近在开发微信小程序&#xff0c;但是用的lin-ui和vant 都没有下拉选择框组件。在网上搜索一番后&#xff0c;发现了一个挺简单且很好用的下拉框组件。 链接在这里&#xff1a;https://blog.csdn.net/WeiflR10/article/details/121494131 原文中是直接写入…

微信小程序实现下拉框功能

微信小程序里没有和HTML里的下拉框一样的组件&#xff0c;想要相同的效果只能自己写一个&#xff0c;先看效果 下面来看一下代码&#xff1a; 首先WXML <view classselect_box><view classselect catchtapselectTap><text classselect_text>{{selectData[i…

小程序登录详解

小程序登录简单分为以下几步&#xff1a; 使用wx.login获取code值获取code值后再加 AppID appsecret code 传给后端后端调接口 拿到 seesion_key openid 返回 token前端存储token 小程序登录的三个角色 小程序 用户使用客户端 由于小程序运行在微信之上 因此小程序可以通过…

一个好看的小程序登录页面

文章目录 前言一、效果图二、实现代码 前言 写一个挺好看的小程序页面&#xff0c;发出来记录一下 一、效果图 登录页面&#xff1a; 注册页面&#xff1a; 通过点击注册和登录按钮切换两个页面淡入淡出效果 二、实现代码 wxml: <!--pages/login/login.wxml--> &…

微信小程序的简单登录

这种在前台直接获取openid的方式已经不可以用了&#xff0c;各位想了解新的登录请去http://blog.csdn.net/m0_37992327/article/details/73469087&#xff0c;不过下面的一些东西还是对大家有帮助的&#xff0c;有兴趣的可以看一下&#xff0c;尤其是ssl证书的申请方式。 最近…

微信小程序登录界面

软件安装 这个就不讲了&#xff0c;没安装的可以自行百度安装一下 创建小程序 点击确认后创建完成&#xff0c;然后 创建登录页 然后点击app.json&#xff0c;将pages中的路径改掉 将pages中的路径修改之后&#xff0c;直接保存&#xff0c;会自动生成login文件夹及下边的文件…

微信小程序实现简单登录界面和登录功能

微信小程序实现简单登录界面和登录功能 问题背景 客户端开发和学习过程中&#xff0c;登录功能是一个很常见的场景。本文将介绍&#xff0c;微信小程序开发过程中是如何实现登录界面和登录功能的。 问题分析 话不多说&#xff0c;直接上代码。 (1)index.js文件&#xff0c;代码…

小程序简单的登录界面

造轮子系列复制粘贴&#xff0c;不多说 <view class""><view class"logo h400 flex jc-ai-center"><image src"../../assets/images/yh.png"></image></view><view class"ipt-wrap"><view cla…

微信小程序登录

前段时间发布了一个微信小程序的简单登录&#xff0c;那段时间我一直在忙着项目&#xff0c;有一天&#xff0c;我清闲下来准备进入小程序群里面看一下来着&#xff0c;刚好有人问问题了&#xff0c;我一看这哥们的问题好像是我写的东西啊&#xff0c;我感觉是时候秀一波了&…

小程序微信小程序设计登录页面

Page({data: {phone: ,password: ,success: false,text: },// 获取输入账号 phoneInput: function (e) {this.setData({phone: e.detail.value})},// 获取输入密码 passwordInput: function (e) {this.setData({password: e.detail.value})},// 登录 login: function () {var t…

微信小程序登录页面的实现

微信小程序登录页面 实现在进入微信小程序首页前的登录验证页面&#xff0c;这里有两种方法&#xff0c;但其实原理都是一样的。 1. 在首页中加入一个弹窗作为登录窗口&#xff0c;效果如下图&#xff1a; (1)index.wxml 登录窗口代码如下&#xff1a; <view class"…

微信小程序实战(一)---实现登录界面

昨天小程序第一天公测&#xff0c;就下载个小程序自带IDE玩了玩&#xff0c;看了看API&#xff0c;撸出了个登录界面给大家分享下。 下面是主界面和代码。 index.wxml <view class"container"><view class"usermotto"><text class"us…

微信小程序云开发 之 登录注册界面 详细教程

文章目录 前言一、前期的准备&#xff08;很重要&#xff09;1.程序的需求2.微信开发者文档3.数据库的设计 二、小程序设计阶段1.选择开发方式2.云开发第一步&#xff1a;注册微信小程序&#xff0c;获取小程序的 AppID第二步、创建小程序项目 第三、登录界面的设计1.登录2.注册…

微信小程序的登录界面实现

微信小程序的登录界面实现 <view class"container"><view class"wrapper"><view class"left-top-sign">LOGIN</view><view class"welcome">欢迎回来&#xff01;</view><view class"inp…

微信小程序 如何实现登录

业务流程&#xff1a; 1&#xff1a;首先需要一个按钮触发事件 2&#xff1a;调用微信小程序的登录接口wx.login&#xff0c;拿到code 3&#xff1a;调用微信小程序的获取用户信息的接口wx.getUserProfile&#xff0c;拿到用户的个人信息 4&#xff1a;拿到的个人信息调用后…

小程序登录流程

用户登录是一个系统的必备功能。而小程序的登录流程和Web端又有一些不同&#xff0c;主要是要与微信服务器进行通信验证。下面我们就来看下小程序具体的登录流程。 1.通过 wx.login() 获取到用户的code判断用户是否授权读取用户信息&#xff0c;调用wx.getUserInfo 读取用户…

微信小程序之登录页-------实例

最近在学习微信小程序&#xff0c;下面提供自己做的微信小程序登录页面&#xff0c;仅供参考。 效果图&#xff1a; 目录结构&#xff1a; 图片&#xff1a; name.png key.png 下面是代码&#xff1a; login.wxml&#xff1a; <!--pages/login/login.wxml--> <vie…

微信小程序的登录流程

基本流程&#xff1a; 1、调用 wx.login() 获取 临时登录凭证code &#xff0c;并回传到开发者服务器。 2、调用 auth.code2Session 接口&#xff08;本接口应在服务器端调用&#xff09;&#xff0c;换取 用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识 UnionID&…

微信小程序实现登录页面

wxml文件&#xff1a; <view class"container"> <view class"login-icon"> <image class"login-img" src"../../img/loginLog.jpg"></image> </view> <view class"login-from"> <!…

微信小程序入门(登录页面)

1.首先前往开发者工具下载安装开发工具&#xff1a; 2.安装后微信扫码&#xff0c;并填写自己的AppID选择自己的项目目录后登录&#xff1a; 登陆后点击工具上的编译按钮&#xff0c;可以在工具的左侧模拟器界面看到这个小程序的表现&#xff0c;也可以点击预览按钮&#xff0c…