Devextreme的DxSelectBox元件的下拉選項部分,預設是絕對位置佈局,導致頁面滾動時,下拉部分不會上下移動
個人的解決方案,監聽頁面滾動事件,如果目前有開啟的下拉框,先關閉下拉框,隨後迅速再開啟,視覺效果上可以做到下拉選項跟隨元件滾動
vue專案中可能會有很多頁面,很多下拉框,我是用的給每個下拉框元件一個id,然後分別處理opened和closed事件
1. 定義全域性變數 SelectedBoxId, 每次有下拉框開啟時,在opened事件中,將id賦值到這個變數
2. 每個下拉元件的closed事件中,傳入當前元件id,如果當前開啟的是當前下拉框,將SelectedBoxId 改成null
3. 監聽頁面滾動事件,處理下拉框的關閉和開啟
handleScroll(e) { if(this.selectedBoxId) { var comp = document.getElementById(this.selectedBoxId).__vue__.instance comp.close() setTimeout(()=>{ comp.open() },50) } }