【问题】: 在elementUI 中,el-dialog的内容比较多,出现滚动条,且内容包含input输入框、select下拉框、时间选择器、cascader级联选择器等,在点开select下拉选择框后并向下滚动鼠标,会出现下拉框跑出el-dialog的区域的情况(有可能离el-dialog的区域很远),造成页面的展示效果混乱。
【解决方案】:我们可以在鼠标滚动的时候,让select弹框隐藏,这样就可以解决select 下拉框在el-dialog外面的问题了。
1. 创建util文件夹,下面创建scroll.js文件
// 这是scroll.js文件的代码
let mouseUp = null;
let mouseDown = null;
// 隐藏popper
export const hidePopper = function (cls='.el-popper') {
let dom = document.querySelector(cls);
if(!dom){
return;
}
// 创建鼠标事件
if (!mouseUp || !mouseDown) {
console.log('-----create events-----');
mouseUp = new MouseEvent('mouseup', {
'view': window,
'bubbles': true,
'cancelable': true
});
mouseDown = new MouseEvent('mousedown', {
'view': window,
'bubbles': true,
'cancelable': true
});
}
// 顺序触发mouseDown、mouseUp
dom.dispatchEvent(mouseDown);
dom.dispatchEvent(mouseUp);
}
// 清除鼠标事件
export const delEvents = function () {
console.log('-----delete events-----');
mouseUp = null;
mouseDown = null;
}
/**
* 滚动时隐藏
* @param contain 滚动监听的容器
* @param cls 隐藏的元素class:如下拉、时间弹框等
*/
export const scrollHide = function (contain,cls) {
// 先移除
if(mouseUp||mouseDown){
delEvents();
}
// 再绑定
contain.onscroll = function () {
hidePopper(cls);
}
}
2. 在自己封装的el-dialog的组件里 引入scroll.js,再调用scrollHide方法
import { scrollHide } from "@/utils/scroll.js";文章来源:https://www.toymoban.com/news/detail-707720.html
文章来源地址https://www.toymoban.com/news/detail-707720.html
到了这里,关于解决element UI中 select下拉框 el-select-dropdown el-popper超出el-dialog弹框的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!