uni-app +uViewUI的u-dropdown遮罩和层级问题

问题1:点击下拉菜单后出现多余的灰色遮罩,很影响外观,如下图所示。

解决:找到node_modules/uview-ui/components/u-dropdown/u-dropdown.vue这个文件,

找到这个u-dropdown__content__mask类名

加上 opacity: 0; 如下图示

问题2 我想让这个下拉菜单固定顶部层级用了z-index: 1;导致其他点击事件无法生效。

解决:

同样还是找到node_modules/uview-ui/components/u-dropdown/u-dropdown.vue这个文件。

然后在 data里面加上                

dropdownShow:false,

如图:

接着找到顶部<view class="u-dropdown" > 添加如下

:style="dropdownShow?'':'overflow:hidden'"

实际:

接着找到open()方法。添加如下
 

this.dropdownShow = true

如图:

然后就找到close()方法 添加如下

this.dropdownShow = false

如图:

然后就完成了

如果uview Dropdown多个下拉菜单数据重合一起,可能是因为你没有正确设置它们的数据源。Dropdown组件的数据源是一个数组,每个元素代表一个下拉选项。如果你在多个地方使用Dropdown组件,并且它们的数据源相同,那么它们显示的内容就会重合在一起。 为了避免这个问题,你可以为每个Dropdown组件设置不同的数据源,或者为它们的数据源添加不同的标识符,来区分它们的数据。 下面是一个示例代码,展示如何为多个Dropdown组件设置不同的数据源,来避免数据重合的问题: ```html <!--index.vue--> <template> <view> <view ref="dropdown1" @click="showDropdown1">点击我显示下拉菜单1</view> <view ref="dropdown2" @click="showDropdown2">点击我显示下拉菜单2</view> <u-dropdown :show.sync="showDropdown1" :list="dropdown1List"> <view>下拉菜单1</view> </u-dropdown> <u-dropdown :show.sync="showDropdown2" :list="dropdown2List"> <view>下拉菜单2</view> </u-dropdown> </view> </template> <script> export default { data() { return { showDropdown1: false, showDropdown2: false, dropdown1List: [ { value: '1', label: '选项1' }, { value: '2', label: '选项2' }, { value: '3', label: '选项3' } ], dropdown2List: [ { value: '4', label: '选项4' }, { value: '5', label: '选项5' }, { value: '6', label: '选项6' } ] } }, methods: { showDropdown1() { this.showDropdown1 = true }, showDropdown2() { this.showDropdown2 = true } } } </script> ``` 在上面的代码中,我们为每个Dropdown组件设置了不同的数据源,来避免它们的数据重合在一起。这样每个Dropdown组件就可以显示自己的数据,而不会重合在一起。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值