uniapp 仿微信的右边下拉选择弹出框

本文介绍了一款自定义的搜索与筛选组件的实现过程,该组件包含搜索框及右侧菜单,点击后可展开下拉筛选菜单,适用于到货、门店、货号等查询场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在百度找了很多 没有找到满意的 这里根据自己的需求 抽取一个组件
这个组件主要是包括搜索框和右边菜单点击弹出一个下拉筛选菜单
搜索框加左边菜单点击弹出下拉筛选框

这里首先用一个单独的页面存放这个组件

<template>
//这里是搜索框的输入框  不需要的可以删掉
	<view>
		<view class="arrivalSearch">
			 <view class="arrivalSmallsearch">
				 <view class="arrivalSearchInput">
					 <input type="text" :placeholder="dateinit">
				  </view>
				  //这里是输入框旁边的图标(这里的图标是一张图片)
				 <image src="../../static/img/nav.png" mode="aspectFill" @click.stop="ShowHidden = !ShowHidden">  </image>
			 </view>
		</view>
		//这里是弹出来的下拉筛选框
		<view class="arrivalNavigation" v-if="ShowHidden">
		 <view class="d4"></view>
		 <view class="sideNavigation">
		 <nav>
			 <ul>
				 <navigator url="../arrivalQuery/arrivalQuery">
					<li>到货查询</li>
				 </navigator>
				 <view class="liBottomBorder"></view>
				<navigator url="../retailStore/retailStore"><li>门店查询</li></navigator>
				  <view class="liBottomBorder"></view>
				  <navigator url="../itemNoQuery/itemNoQuery"><li>货号查询</li></navigator>
				  <view class="liBottomBorder"></view>
				  <navigator url="../priceReductionQuery/priceReductionQuery"><li>降价查询</li></navigator>
			 </ul>
		 </nav>
		 </view>
		</view>
	</view>
</template>

<script>
		export default {
			data() {
				return {
					 ShowHidden: false,
					 dateinit:'请输入货号',
				};
			},
			methods: {
			   // 点击页面事件 隐藏需要隐藏的区域
			   HiddenClick () {
			     this.ShowHidden = false
			   },
			 },
			mounted () {
			    // document.addEventListener('click', this.HiddenClick)
			  },
		}
</script>

<style lang="less">
 .arrivalSearch{
		 width: 100%;
		 height: 100rpx;
		 background-color: #fff;
		 box-shadow: 0 0 10rpx #eee;
		.arrivalSmallsearch{
			width: 96%;
			display: flex;
			.arrivalSearchInput{
						 height: 70rpx;
						 background-color: #F0F1F6;
						 border-radius: 40rpx;
						 font-size: 25rpx;
						 margin-left: 10rpx;
						 margin-top: 10rpx;
						 width: 608rpx;
			}
			input{
				width: 80%;
			    margin-left: 40rpx;
				margin-top: 10rpx;
			}
			image{
				width: 40rpx;
				height: 40rpx;
				margin-left: 20rpx;
				margin-top: 20rpx;
			}
		}
	
	 }
	 //从这里开始是弹出框的样式  不需要搜索框的 前面样式都不用加
	 .arrivalNavigation{
	 	width: 250rpx;
	 	position: absolute;
	     right:20rpx;
	 	z-index: 99;
	 	.sideNavigation{
	 		  width: 248rpx;
	 		  background-color: #202020;
	 		  color: #eee;
	 		  border-radius: 10rpx;
	 			  li{
	 				 height: 85rpx;
	 				 text-align: center;
	 				 line-height: 85rpx;
	 				 font-size: 25rpx;
	 			  }
	 			  .liBottomBorder{
	 				border: 0.1rpx solid #373737;
	 			  }
	 			
	 		  }
	 		  .d4{
	 			// position: absolute;
	 		 //  	left: 140rpx;
	 		  	width: 0; 
	 		  	height: 0;
	 			margin-left: 150rpx;
	 			margin-top: -20rpx;
	 		  	border-width:20rpx;
	 		  	border-style: solid;
	 		  	border-color: transparent #333 transparent transparent;
	 		  	transform: rotate(90deg); /*顺时针旋转90°*/
	 			
	 		  }
	 	}
</style>

然后在main.js中引入页面

import springBox from 'pages/springBox/springBox'
Vue.component('springBox',springBox)

最后直接在需要使用的页面使用组件就可以了

 <springBox></springBox>

完成!!!

参考资源链接:[uniapp实现微信风格右侧下拉选择框详细教程](https://wenku.csdn.net/doc/6401aba3cce7214c316e8f5e?utm_source=wenku_answer2doc_content) 为了在uniapp中实现一个仿微信风格的右侧下拉选择弹出框,并具备搜索和筛选功能,你可以参考这篇详细教程《uniapp实现微信风格右侧下拉选择框详细教程》。这篇教程不仅提供了步骤,还包含示例代码,可以帮助你快速上手并实现这个组件。 首先,你需要创建一个新的页面作为组件的容器。在这个页面中,放置一个搜索框和一个用于触发下拉菜单的图标。搜索框是一个文本输入区域,当点击旁边的图标时,会触发下拉菜单的显示和隐藏。 接下来,构建下拉菜单的结构。下拉菜单应该是一个列表形式,里面包含多个选项,比如'到货查询'、'门店查询'等,每个选项都链接到相应的业务逻辑处理页面。使用`<view>`标签来创建下拉菜单的布局,并通过CSS来控制其样式,使其具有微信风格的视觉效果。 在下拉菜单的JavaScript部分,使用`v-if`指令来控制下拉框的显示与隐藏,这里的`ShowHidden`变量是一个布尔值,用来根据用户的交互改变下拉框的显示状态。 通过这个组件的开发,你可以学习到如何结合Vue.js的数据绑定和模板语法,在uniapp中实现组件化的开发。这种模式有助于维护和扩展你的应用。 在实现过程中,务必注意代码的可读性和可复用性,以确保开发效率和应用的可维护性。具体的示例代码如下:(此处将提供具体的代码,包括搜索框、下拉菜单的布局、样式设置、状态控制等详细实现,由于篇幅限制,具体代码实现内容略) 通过以上步骤和代码,你应该能够在uniapp中实现一个具备搜索和筛选功能的右侧下拉选择弹出框。如果你希望进一步深入了解组件化开发或其他高级话题,建议继续阅读《uniapp实现微信风格右侧下拉选择框详细教程》,这将为你提供更多的学习资源和参考。 参考资源链接:[uniapp实现微信风格右侧下拉选择框详细教程](https://wenku.csdn.net/doc/6401aba3cce7214c316e8f5e?utm_source=wenku_answer2doc_content)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值