页面滚动时隐藏页面所有element-ui下拉框

/** 
 * 隐藏页面所有element-ui下拉框
 */

let mouseUp = null;
let mouseDown = null;

// 隐藏下拉
export const hideDropdown = function(dom) {
  if(!dom) {
    // 默认为头部标题元素
    dom = document.querySelector('.avue-header .title');
  }
  // 创建鼠标事件
  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就能触发element隐藏下拉框事件
  dom.dispatchEvent(mouseDown);
  dom.dispatchEvent(mouseUp);
}

// 清除鼠标事件
export const delEvents = function() {
  console.log('-----delete events-----');
  mouseUp = null;
  mouseDown = null;
}

// dom 滚动时隐藏下拉框
export const scrollHide = function(dom) {
  dom.onscroll = function() {
    hideDropdown();
  }
}
posted @   djzz  阅读(546)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示