页面滚动时隐藏element-ui下拉框/时间弹框

这篇具有很好参考价值的文章主要介绍了页面滚动时隐藏element-ui下拉框/时间弹框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景

在类后台管理的系统中,当(有垂直滚动时)点击下拉框后滚动页面,会发现下拉项会遮盖住layout
正常页面:
element日期组件会跟着页面滚动,vue.js,elementui

滚动后:element日期组件会跟着页面滚动,vue.js,elementui文章来源地址https://www.toymoban.com/news/detail-517081.html

解决

  • 在页面滚动或者缩放时隐藏下拉项即可(借助点击目标元素,下拉项会自动隐藏的特点)
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);
  }
}
  • 使用
// 在container有滚动时
// 隐藏popper类的组件
scrollHide(document.getElementById('container'),'.popper');
// 隐藏下拉项
scrollHide(document.getElementById('container'),'.el-select-dropdown');
// 隐藏时间弹框
scrollHide(document.getElementById('container'),'.el-date-range-picker');

到了这里,关于页面滚动时隐藏element-ui下拉框/时间弹框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VUE element-ui 使用Screefull 页面全屏时el-select下拉菜单不显示(下拉框不显示无法选择)问题解决

    问题原因:elemrnt-ui会默认将弹出框插入至 body 元素;当设置了某个元素全屏时,会遮挡住原来的select下拉数据。

    2024年02月14日
    浏览(41)
  • Vue 当页面进入全屏状态时element-ui的el-select下拉菜单不显示问题

    在前两天进行页面全屏时,一切都还好好的,可当使用element-ui中的el-select时,下拉菜单却怎么也显示不出来,但只要退出全屏状态,立马就好。 非全屏时:  全屏时: 开始我以为是层级问题,所以给el-select的下拉菜单加z-index,却发现加到多大都没用。 后来去官方文档里找

    2024年01月17日
    浏览(53)
  • Element-UI源码学习——弹框组件

    首先,分析一下Element-UI的对话框,点击,会弹出一个对话框。对话框由具体的弹框内容、关闭或确认按钮、外围的遮罩层组成。首先,先看下elmentui的用法: el-dialog组件里面可进行配置 效果: 1、dom实现: 外面的div实现遮罩层,里面的div是具体的内容 css: 2、弹框类的组件

    2024年02月12日
    浏览(34)
  • element-ui弹框dialog无故关闭问题

    element-ui弹框dialog无故关闭问题 引起原因,鼠标在dialog内按下滑动到外层遮罩后出发了遮罩的关闭事件,修改方法如下: 源文件中找到目录element-dev =packages =dialog =src = component.vue,替换点击事件@click.self=“handleWrapperClick”,代码如下,修改完成后打包 npm run dist,找到你的项目

    2024年02月12日
    浏览(32)
  • element-ui:多个el-dialog弹框切换会出现闪烁

    使用多个element-ui组件el-dialog弹框切换 打开A弹框,点击关闭,紧接着打开B弹框 会出现一个明显的闪烁 给第一个弹框关闭加一点延迟 参考 【ElementUI】dialog弹窗出现闪屏问题解决办法

    2024年02月11日
    浏览(42)
  • element-ui 下拉选择同时可输入

    element-ui在下拉选择的同时可以输入,看官方文档的时候,发现只有allow-create勉强符合需求,可以创建并选中选项中不存在的条目,但是不能满足输入失焦以后就是输入的值,搜了网上一圈,终于找到了答案~使用blur:

    2024年02月17日
    浏览(30)
  • element-ui输入框下拉远程搜索

    实现效果: 可以在你输入的时候出现一个下拉,将你输入的东西与下拉框的内容进行匹配,然后下拉框会显示匹配的内容  相关代码: :fetch-suggestions=\\\"querySearchAsync\\\"是定义下拉内容的函数方法,restaurants是下拉框的内容,timeout这个定时器使用来决定多少秒后显示筛选后的内容

    2024年02月05日
    浏览(35)
  • 使用element-ui的滚动条

    在项目中引入element-ui后,发现在不同的浏览器显示并不一样,为了统一浏览器中的样式,统一使用了element-ui库中的滚动条。使用方法如下: 1.把想要出滚动条的内容放在下边标签里即可: 2.如果不想要横向的滚动条,添加css: 3.如果相让滚动条一直显示而不是鼠标移入才显

    2024年02月15日
    浏览(35)
  • 【vue组件】使用element-ui 实现三级联动下拉选择

    实现的思路是第一个下拉选择在选择了选项后将该选项的信息传递到接口请求下一个选项的内容,依次类推 然后在清除了上一级选择的选项后要将其次级和子孙级的选项都清除(包括选择里的列表内容) 下面看具体代码: 效果图:

    2024年02月11日
    浏览(45)
  • 解决element-ui组件库中dialog组件只显示遮罩层,未显示弹框的问题

    以下是直接粘贴的组件--基础用法 el-button type=\\\"text\\\" @click=\\\"dialogVisible = true\\\"点击打开 Dialog/el-button el-dialog   title=\\\"提示\\\"   :visible.sync=\\\"dialogVisible\\\"   width=\\\"30%\\\"   :before-close=\\\"handleClose\\\"   span这是一段信息/span   span slot=\\\"footer\\\" class=\\\"dialog-footer\\\"     el-button @click=\\\"dialogVisible = false\\\"取 消

    2024年02月03日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包