Skip to content

Commit 16d50e5

Browse files
committed
fix(popper): fix popper doms in custom element, cant get zindex
1 parent 64423ee commit 16d50e5

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

packages/renderless/src/common/deps/popper.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ const isFixed = (el: HTMLElement) => {
7777
return true
7878
}
7979

80+
// 处理遇到 shadowRoot的情况
81+
if (el.host) {
82+
el = el.host
83+
}
8084
return el.parentNode ? isFixed(el.parentNode as HTMLElement) : false
8185
}
8286

packages/renderless/src/common/deps/vue-popper.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ const getReferMaxZIndex = (reference) => {
5959
do {
6060
reference = reference.parentNode
6161

62+
// 处理遇到shadowRoot的情况
63+
if (reference && reference instanceof ShadowRoot && reference.host) {
64+
reference = reference.host
65+
}
66+
6267
if (reference) {
6368
z = getZIndex(reference)
6469
} else {

packages/renderless/src/grid/utils/dom.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,15 @@ export const colToVisible = ($table, column, move) => {
180180
}
181181

182182
export const hasDataTag = (el, value) => {
183-
// el可能为shadow-root,shadow-root没有getAttribute方法
184-
if (!el || !value || !el.getAttribute) {
183+
if (!el || !value) {
185184
return false
186185
}
187186

187+
// 处理遇到 shadowRoot的情况
188+
if (el.host) {
189+
el = el.host
190+
}
191+
188192
return (' ' + el.getAttribute('data-tag') + ' ').includes(' ' + value + ' ')
189193
}
190194

0 commit comments

Comments
 (0)