element中下拉框select在长页面滚动时,下拉弹框没有跟随下拉框跑路

1.需求:
在这里插入图片描述
在页面滚动过程中,弹框并没有跟着下拉框一起跑,一直固定在那个位置
2.修改:
在tamplate中:

<el-col :span="10" class="tb-row" style="float: right;">
  <el-form-item label="经营性质" prop
在Vue.js配合Element UI开发,如果你想要实现在页面滚动隐藏`el-select`组件的下拉菜单,你可以使用`@scroll`事件和元素的高度计算来动态控制。首先,确保你的`el-select`有`.el-select-dropdown`这个CSS类关联到它的下拉部分。然后,添加如下的Vue组件内脚本: ```html <template> <div ref="selectContainer"> <el-select v-model="selectedValue" @scroll.native.prevent> <!-- select options --> </el-select> </div> </template> <script> export default { data() { return { selectedValue: '', }; }, mounted() { this.$refs.selectContainer.addEventListener('scroll', this.handleScroll); }, methods: { handleScroll() { const dropdownHeight = this.$refs.selectDropdown.offsetHeight; const scrollTop = this.$refs.selectContainer.scrollTop; if (scrollTop + this.$refs.selectContainer.clientHeight >= dropdownHeight) { // 当滚动到底部 this.$refs.selectDropdown.style.maxHeight = '0'; // 隐藏下拉框 } else { this.$refs.selectDropdown.style.maxHeight = null; // 显示下拉框 } }, }, beforeDestroy() { this.$refs.selectContainer.removeEventListener('scroll', this.handleScroll); // 移除监听 }, }; </script> <style scoped> .el-select-dropdown { /* 如果你的下拉框有自己的CSS选择器,替换为对应的 */ .el-select-dropdown { max-height: 0; /* 初始状态隐藏下拉框 */ } </style> ``` 这里的关键在于`handleScroll`方法,当用户滚动到`selectContainer`的底部,设置下拉菜单的最大高度为0,使其不可见。当你向上滚动下拉菜单会恢复默认样式。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值