最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何解決element-ui中select下拉框popper超出彈框問題

 更新時間:2024年04月27日 11:52:11   作者:j-ymg  
這篇文章主要介紹了如何解決element-ui中select下拉框popper超出彈框問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

問題場景

如下:

嘗試了好幾種解決方法,比如從下拉框el-popper使用fixed定位入手,修改popper-append-to-body,或者修改z-index

看了源碼后又嘗試監(jiān)聽表格滾動使用`this.$refs.table.handleClose()`關閉popper,但都未達到我想要的效果。

嘗試了網上一些解決方案,跟我之前的嘗試一樣,只有拖動滾動條停止的時候popper消失,滑動鼠標滾輪則無效。無奈我只好直接修改源碼的visible來關閉popper,

解決方法如下:

解決方法

1、先把element-ui下select.vue的源碼單獨拎出來

添加自己的代碼(另外還需修改導入路徑)形成組件Select.vue。

改動如下:

(1) 修改源碼import路徑

import Emitter from 'element-ui/src/mixins/emitter';
import Focus from 'element-ui/src/mixins/focus';
import Locale from 'element-ui/src/mixins/locale';
import ElInput from 'element-ui/packages/input';
import ElTag from 'element-ui/packages/tag';
import ElScrollbar from 'element-ui/packages/scrollbar';
import debounce from 'element-ui/node_modules/throttle-debounce/debounce';
import Clickoutside from 'element-ui/src/utils/clickoutside';
import { addResizeListener, removeResizeListener } from 'element-ui/src/utils/resize-event';
import scrollIntoView from 'element-ui/src/utils/scroll-into-view';
import { getValueByPath, valueEquals, isIE, isEdge } from 'element-ui/src/utils/util';
import { isKorean } from 'element-ui/src/utils/shared';
import NavigationMixin from 'element-ui/packages/select/src/navigation-mixin';
import ElOption from 'element-ui/packages/select/src/option';
import ElSelectMenu from 'element-ui/packages/select/src/select-dropdown';

(2) 在select.vue源碼的基礎上接收父組件傳來的scrollTop,監(jiān)聽scrollTop的改變使visible為false。

props: {
    // 源碼上新增:父組件表格滾動條
    scrollTop: {
      type: Number,
      default: 0,
    },
  },
  
  watch: {
    //  源碼上新增:滾動條滾動就隱藏下拉框
    scrollTop() {
      this.visible = false;
    },
  }

2、把el-select改成Select組件

監(jiān)聽滾動條的滾動,滾動就隱藏下拉框

主要代碼如下:

import Select from '@/components/common/select';

components: { Select },
data() {
    return {
      tempTableBody: null,
      // 滾動條位置,用來判斷滾動條滾動隱藏下拉框
      scrollTop: 0,
    };
  },
  
  mounted() {
    this.onscroll();
  },
  methods: {
    // 監(jiān)聽table的bodyWrapper的滾動
    onscroll() {
      this.$nextTick(() => {
        this.tempTableBody= this.$refs.editTempTable.bodyWrapper;
        if (this.tempTableBody) {
          this.tempTableBody.addEventListener('scroll', this.handleScroll, false);
        }
      });
    },
    // 滾動條出現滾動就改變scrollTop的值
    handleScroll() {
      this.scrollTop = this.tempTableBody.scrollTop;
      // this.$refs.matchField.handleClose();
    },
  }    

總結

至此,就成功解決這個問題了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue中子組件的methods中獲取到props中的值方法

    vue中子組件的methods中獲取到props中的值方法

    今天小編就為大家分享一篇vue中子組件的methods中獲取到props中的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vant中Popover氣泡彈出框位置錯亂問題解決

    Vant中Popover氣泡彈出框位置錯亂問題解決

    這篇文章主要為大家介紹了Vant中Popover氣泡彈出框位置錯亂問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • vue實現下拉框二級聯動效果的實例代碼

    vue實現下拉框二級聯動效果的實例代碼

    這篇文章主要介紹了vue實現下拉框二級聯動效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Vue cli+mui 區(qū)域滾動的實例代碼

    Vue cli+mui 區(qū)域滾動的實例代碼

    下面小編就為大家分享一篇Vue cli+mui 區(qū)域滾動的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • VUE生命周期全面系統(tǒng)詳解

    VUE生命周期全面系統(tǒng)詳解

    Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new?Vue()?開始就是vue生命周期的開始。Vue?實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數據、編譯模版、掛載Dom?->?渲染、更新?->?渲染、卸載?等?系列過程,稱這是Vue的?命周期
    2022-07-07
  • Vue項目npm run dev啟動失敗的6個常見原因(附解決方案)

    Vue項目npm run dev啟動失敗的6個常見原因(附解決方案)

    Vue 項目啟動是前端開發(fā)的基礎操作,但很多新手(甚至有經驗的開發(fā)者)都會遇到npm run dev(或?npm run serve)啟動失敗的問題,下面就來介紹一下失敗的原因及解決方案,感興趣的可以了解一下
    2026-01-01
  • 實現vuex與組件data之間的數據同步更新方式

    實現vuex與組件data之間的數據同步更新方式

    今天小編就為大家分享一篇實現vuex與組件data之間的數據同步更新方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue搜索高亮popsearch組件的實現示例

    vue搜索高亮popsearch組件的實現示例

    有時候給頁面內容添加一個關鍵詞搜索功能,如果搜索結果能夠像瀏覽器搜索一樣高亮顯示,那找起來就會很明顯體驗會好很多,本文就來介紹一下vue搜索高亮popsearch組件的實現示例,感興趣的可以了解一下
    2023-09-09
  • Vue+node實現音頻錄制播放功能

    Vue+node實現音頻錄制播放功能

    這篇文章主要介紹了Vue+node實現音頻錄制播放,功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • element?實現導航欄收起展開功能及思路

    element?實現導航欄收起展開功能及思路

    這篇文章主要介紹了element?實現導航欄收起展開功能,實現思路先給 el-menu加上 :collapse="isCollapse" 屬性,這個屬性也是 element 上的一個參數,意思為是否開啟折疊動畫,在 data 中定義 isCollapse ,用 true 和 false 控制展開與收起,需要的朋友可以參考下
    2023-01-01

最新評論

砚山县| 静安区| 集安市| 巫山县| 景泰县| 郁南县| 广德县| 永春县| 汨罗市| 贺兰县| 营山县| 思茅市| 边坝县| 惠安县| 锡林浩特市| 辉县市| 拜城县| 深圳市| 蒙自县| 呼和浩特市| 中西区| 武城县| 柯坪县| 肇东市| 青铜峡市| 丰都县| 柳河县| 武穴市| 嘉定区| 高邑县| 左贡县| 北碚区| 华宁县| 泰和县| 札达县| 都昌县| 东乡| 海安县| 新野县| 小金县| 定日县|