vue elementui select下拉库组件鼠标移出时隐藏下拉框

方案:

select 监听 mouseleave事件,当鼠标离开时通过唯一标识ref设置select 下拉框隐藏,并做失焦

html 复制代码
<el-select 
v-model="value" 
:popper-append-to-body="false"   
class="select_drop_inner" size="small"
placeholder="支持模型体验" 
ref="selectRef" 
@mouseleave.native="closeSelect">
  <el-option label="xxx" value="xxx"></el-option>
  <el-option label="xxx" value="xxx"></el-option>
</el-select>

popper-append-to-body 属性是设置弹出框的位置的,设置为false比较方便我们通过当前select去获取对应的下拉框元素,如果设置为true的话对应下拉框元素会在最外层,不方便拿到并设置

但是设置当前属性也会导致出现下拉框被盖住不显示的样式问题

如果有这样的样式问题可以给select设置单独的class,然后设置以下的scss

css 复制代码
.select_drop_inner {
    padding-bottom: 0.2rem;  //为下方的下拉框保留位置(20px)
    position: relative;
    top: 0.1rem; //兼容之前的样式,可以不加
    .el-select__tags {
        top: calc(50% - 0.1rem);
    }
    .el-select-dropdown {
        position: fixed !important;  //主要是修改下拉框为固定定位来解决不显示问题
        top: 3.2rem !important;  //上方的高度需自己计算(相关整个页面视口)

    }
}

mouseleave事件方法中做操作

javascript 复制代码
closeSelect(){
   // 注意 selectRef 要和 ref="selectRef" 对应
   this.$refs.selectRef.$el.querySelector('.el-select-dropdown').style.display = 'none';
   // 隐藏下拉框后 同时 使 input 失去焦点
   this.$refs.selectRef.blur()
 },

参考至 https://blog.csdn.net/Z18834071903/article/details/138799731

相关推荐
晓13131 分钟前
【Cocos Creator 3.x】篇——第五章 项目实战优化技术
前端·javascript·游戏引擎
有梦想的程序星空6 分钟前
【环境配置】使用 Vue CLI 构建 Vue 项目脚手架完整指南
前端·javascript·vue.js
之歆10 分钟前
Ajax 进阶:跨域、CORS、JSONP 与请求封装实战
前端·javascript·ajax
杨先生哦17 分钟前
【2026 热端攻防系列 2/12】DOM 型 XSS 深度实战:AI 多态变形免杀 + 全维度防御
前端·人工智能·笔记·安全·web安全·xss
sugar__salt17 分钟前
前端Ajax核心原理与实战:从异步机制到接口请求全解析
前端·javascript·ajax
问心无愧051317 分钟前
ctf show web入门115
android·前端·笔记
難釋懷18 分钟前
Nginx缓冲区
前端·javascript·nginx
程序猿小泓18 分钟前
2026 前端面试全攻略:手写题、算法与计网/TS 高频考点
前端·javascript·css
JustHappy9 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
snow@li9 小时前
SEO-文章标题:写文章时候,分类+主标题+大纲+解释 作为标题 / 不点进去也知道全文覆盖什么 / 标题即架构
前端