真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Element-ui中元素滾動時el-option超出元素區(qū)域的問題-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Element-ui中元素滾動時el-option超出元素區(qū)域的問題”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Element-ui中元素滾動時el-option超出元素區(qū)域的問題”這篇文章吧。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁制作,對成都混凝土攪拌罐車等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

復(fù)現(xiàn)場景, 看圖

Element-ui中元素滾動時el-option超出元素區(qū)域的問題

分析原因

為簡單起見, 把選項區(qū)域描述為popperEl

  • popperEl的z-index 比較大, 會覆蓋在其他元素上面

  • popperEl默認是插入body元素的(可以將popper-append-to-body設(shè)為false后不插入到body)

  • popperEl是在mouseup事件里去做隱藏邏輯的, 而按下鼠標(biāo), 移動滾動條的時候, 并沒有觸發(fā)mouseup事件.

  • popperEl并沒有監(jiān)聽滾動事件(沒法監(jiān)聽, 也沒必要監(jiān)聽)

解決方案

 方案一

我最初想到的解決方案是通過css解決,通過popper-class屬性給Select下拉框添加類名,然后用css來做, 試了一下這個方案并不可行(只能在某些特定的場景下起作用),遂放棄,可能最優(yōu)雅最高性能的方法就是用css來搞定, 有踩過這個坑的朋友請指點一下

方案二

通過監(jiān)聽$root的scroll事件,利用事件冒泡,只需要在根元素上添加scroll事件的監(jiān)聽就可以了, 測試一番之后, 發(fā)現(xiàn)scroll事件根本不支持冒泡, event.bubbles為false)。

方案三

通過查看element-ui 的select.vue, 發(fā)現(xiàn)控制popperEl顯隱的是visible 和 emptyText這兩個實例屬性, 很明顯, emptytext是不能動的, 只能在visible上動手腳了. 這里放一小段源碼


 
  
   
   
   
  
  

   {{ emptyText }}   

 

全局搜索this.visible, 發(fā)現(xiàn)了這個方法

handleClose() {
  this.visible = false;
},

這下好辦了, 按圖索驥, 順藤摸瓜, 找到這個