diff --git a/docs/en-US/component/dropdown.md b/docs/en-US/component/dropdown.md index dbcb394a3d..feed6488ee 100644 --- a/docs/en-US/component/dropdown.md +++ b/docs/en-US/component/dropdown.md @@ -19,10 +19,10 @@ Toggleable menu for displaying lists of links and actions. cursor: pointer; color: var(--el-color-primary); } -.el-icon--right { - font-size: 12px; - vertical-align: middle; -} + .el-icon--right { + font-size: 12px; + vertical-align: middle; + } } .block-col-2 { @@ -122,6 +122,7 @@ dropdown/sizes | show-timeout | Delay time before show a dropdown (only works when trigger is `hover`) | number | — | 250 | | hide-timeout | Delay time before hide a dropdown (only works when trigger is `hover`) | number | — | 150 | | tabindex | [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of Dropdown | number | — | 0 | +| popper-class | custom class name for Dropdown's dropdown | string | — | — | ## Dropdown Slots diff --git a/packages/components/dropdown/__tests__/dropdown.spec.ts b/packages/components/dropdown/__tests__/dropdown.spec.ts index adc6192d56..2947b6b5bf 100644 --- a/packages/components/dropdown/__tests__/dropdown.spec.ts +++ b/packages/components/dropdown/__tests__/dropdown.spec.ts @@ -364,4 +364,31 @@ describe('Dropdown', () => { await sleep(TIMEOUT) expect(content.visible).toBe(true) }) + + test('popperClass', async () => { + const wrapper = await _mount( + ` + + + dropdown + + + + `, + () => ({}) + ) + const content = wrapper.findComponent({ ref: 'b' }) as any + const popperId = content?.componentVM?.triggerVnode?.popperId + const popperElement = document.getElementById(popperId) + + expect(popperElement.classList.contains('custom-popper-class')).toBe(true) + }) }) diff --git a/packages/components/dropdown/src/dropdown.vue b/packages/components/dropdown/src/dropdown.vue index d55b2547f6..366aaa37bb 100644 --- a/packages/components/dropdown/src/dropdown.vue +++ b/packages/components/dropdown/src/dropdown.vue @@ -9,7 +9,7 @@ pure :manual-mode="true" :trigger="[trigger]" - popper-class="el-dropdown__popper" + :popper-class="`el-dropdown__popper ${popperClass}`" append-to-body transition="el-zoom-in-top" :stop-popper-mouse-event="false" @@ -127,6 +127,10 @@ export default defineComponent({ type: [Number, String], default: '', }, + popperClass: { + type: String, + default: '', + }, }, emits: ['visible-change', 'click', 'command'], setup(props, { emit }) {