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

相关推荐
程序员黑豆3 小时前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
bugcome_com6 小时前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
To_OC6 小时前
写了三天 Next.js,我的 React 世界观被拆了又装回去
前端·全栈·next.js
独泪了无痕6 小时前
viewer.js 安装与配置指南:实现图片预览功能
前端·vue.js
Fluxart.ai8 小时前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁
java·前端·自动化
why技术9 小时前
AI 写的文章,可能都带着手敲一遍都去不掉的“隐形水印”。
前端·人工智能·后端
愚公搬代码9 小时前
【愚公系列】《Android应用案例开发大全》016-LBS类应用掌上杭州(辅助工具类的开发)
android·前端
CodeSheep9 小时前
又一个华为天才少年,离职了!
前端·后端·程序员
kyriewen9 小时前
面试官说"打开你的AI工具"——我才发现,他考的根本不是写代码
前端·人工智能·面试
IT_陈寒10 小时前
Vue的双向绑定把我坑惨了,原来这个场景不能用
前端·人工智能·后端