微信小程序 van-dropdown-menu

点击其他按钮,关闭van-dropdown-menu下拉框

在app.json或index.json中引入组件

html 复制代码
"usingComponents": {
  "van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
  "van-dropdown-item": "@vant/weapp/dropdown-item/index"
}

页面使用

下面是完成的使用步骤

index.wxml

html 复制代码
<view class="seach-Main">
    <view class="class-main">
      <van-dropdown-menu 
      active-color="#FFD69A" 
      custom-class="menuMain" 
      >
        <van-dropdown-item
        title-class="ItemMain"
        value="{{ value1 }}" 
        options="{{ option1 }}"
        bind:change="onDropDownChange" 
        id="item"/>
      </van-dropdown-menu>
    </view>
    <van-search 
    class="search-text" 
    background="#000000" 
    value="{{ value }}" 
    placeholder="请输入产品编号/名称" 
    placeholder-style="font-size:28rpx;" 
    clearable="true" use-action-slot 
    left-icon="search" 
    bind:focus="onFocusClick" 
    bind:change="onChange" 
    bind:search="submitHandle">
      <view slot="action" bind:tap="submitHandle" style="color: #FFFFFF;">搜索</view>
    </van-search>
  </view>

index.scss

css 复制代码
  .seach-Main {
    display: flex;
    justify-content: space-around;
    width: 100%;
    align-items: center;
    position: relative;
    
    .search-text {
      width: 100%;
    }

    .search-image {
      display: flex;
      position: absolute;
      width: 44rpx;
      left: 40rpx;

      image {
        width: 44rpx;
        height: 44rpx;
      }

    }
  }

  .seach-Main .van-search__content--square {
    background-color: var(--bannerBgColor) !important;
    border-radius: 10rpx 10rpx 10rpx 10rpx;
    border: 2rpx solid var(--bannerBgColor);
  }

  .seach-Main .cell-index--van-cell__value {
    text-align: left;

  }

  .seach-Main .van-field__control {
    color: var(--titleColor);
  }

  .seach-Main .van-cell__left-icon-wrap {
    color: var(--titleColor) !important;
  }

  // 选择
  .class-main {
    .menuMain {
      background-color: var(--mainBgColor);
    }

    .ItemMain {
      color: var(--titleColor);
    }
  }

  .van-cell {
    background-color: var(--bannerBgColor) !important;
    color: var(--titleColor) !important;
    border: none;
  }

  /* 样式文件 */
  .class-main .van-cell::after {
    border: none;
  }

上面var()都是引用的公共样式,可以换成自己项目需要的样式。

index.ts(重点)

在这里,需要实现输入框选中时,van-dropdown-menu组件需要关闭。所以在输入框组件里增加了bind:focus="onFocusClick"方法。在这个方法里面实现关闭操作。

javascript 复制代码
// 输入框聚焦关闭组件
  onFocusClick() {
    this.selectComponent('#item').toggle(false);
  },

刚开始没注意官方文档的说明,现将该方法着重展示出来。

index.ts(全部)

javascript 复制代码
Page({

  /**
   * 页面的初始数据
   */
  data: {
    value1: '',
    option1: [
      { text: '全部', value: '' },
      { text: '干货', value: 'GH' },
      { text: '调味', value: 'TW' },
    ],
    groupType:'', // 分类
    searchField:'',// 输入框搜索内容
},
// 输入框聚焦关闭
  onFocusClick() {
    this.selectComponent('#item').toggle(false);
  },
  // 筛选
  onDropDownChange(e: any) {
    let index = e.detail
    if (index == 0 && this.data.value1 == 0) {
      index = ''
    }
    this.setData({
      'groupType': index,
    })
  },
  // 输入框值改变时的方法
 onChange(e: any) {
    this.setData({
      searchField: e.detail,
    });
    // 调用搜索接口
    
  },
  // 点击搜索按钮方法
 submitHandle() {
  this.selectComponent('#item').toggle(false); // 关闭弹框
    var vkey = this.data.value;
    if (vkey) {
    // 搜索关键字不为空时的操作
    
    } else {
    // 搜索关键字为空时的操作
  
    }
  },


)}

最终效果如下:

点击其他方法,关闭van-dropdown-menu

相关推荐
奶糖 肥晨7 小时前
微信小程序隐藏滚动条多种方法教程
微信小程序·小程序·notepad++
计算机学姐7 小时前
基于微信小程序的高校班务管理系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
sen_shan7 小时前
《微信小程序》第三章:Request封装
微信小程序·小程序
sen_shan7 小时前
《微信小程序》第一章:开发前准备与配置
微信小程序·小程序
游戏开发爱好者88 小时前
HTTPS 内容抓取实战 能抓到什么、怎么抓、不可解密时如何定位(面向开发与 iOS 真机排查)
android·网络协议·ios·小程序·https·uni-app·iphone
stark张宇13 小时前
超越 Hello World:深入小程序 Hybrid 初衷、安全配置与上线全链路
nginx·微信小程序·php
菜鸟una15 小时前
【瀑布流大全】分析原理及实现方式(微信小程序和网页都适用)
前端·css·vue.js·微信小程序·小程序·typescript
2501_9151063217 小时前
iOS 混淆与 IPA 加固全流程,多工具组合实现无源码混淆、源码防护与可审计流水线(iOS 混淆|IPA 加固|无源码加固|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者817 小时前
用多工具组合把 iOS 混淆做成可复用的工程能力(iOS混淆 IPA加固 无源码混淆 Ipa Guard)
android·ios·小程序·https·uni-app·iphone·webview
lypzcgf18 小时前
商城小程序数据库表结构文档
数据库·小程序·电商