diff --git a/packages/vant/src/floating-panel/test/__snapshots__/index.spec.tsx.snap b/packages/vant/src/floating-panel/test/__snapshots__/index.spec.tsx.snap
index 98226e04e..739d9dd8e 100644
--- a/packages/vant/src/floating-panel/test/__snapshots__/index.spec.tsx.snap
+++ b/packages/vant/src/floating-panel/test/__snapshots__/index.spec.tsx.snap
@@ -9,7 +9,10 @@ exports[`should drag adsorption effect when anchors props is [100, 200, 400] 1`]
-
@@ -24,7 +27,10 @@ exports[`should minHeight 100 and maxHeight 0.6 innerHeight when anchors props d
-
@@ -36,7 +42,10 @@ exports[`should render header slot correctly 1`] = `
style="height: 461px; transform: translateY(calc(100% + -100px)); transition: transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);"
>
Custom Header
-
`;
diff --git a/packages/vant/src/floating-panel/test/index.spec.tsx b/packages/vant/src/floating-panel/test/index.spec.tsx
index 0380b9191..b7577abc6 100644
--- a/packages/vant/src/floating-panel/test/index.spec.tsx
+++ b/packages/vant/src/floating-panel/test/index.spec.tsx
@@ -148,7 +148,7 @@ test('should not snap to anchors when magnetic is false', async () => {
await later();
// Should stay at dragged position (around 250px), not snap to nearest anchor (200px)
- const {transform} = (wrapper.element as HTMLDivElement).style;
+ const { transform } = (wrapper.element as HTMLDivElement).style;
expect(transform).not.toContain('-200px');
expect(transform).not.toContain('-400px');
expect(transform).toContain('-250px');
@@ -170,3 +170,22 @@ test('should snap to nearest anchor when magnetic is true (default)', async () =
'-100px',
);
});
+
+test('should add padding bottom to content when panel is not fully expanded', async () => {
+ const wrapper = mount(FloatingPanel, {
+ props: {
+ anchors: [100, 200, 400],
+ height: 200,
+ },
+ });
+
+ const content = wrapper.find('.van-floating-panel__content')
+ .element as HTMLElement;
+ expect(content.style.paddingBottom).toBe('200px');
+
+ await wrapper.setProps({ height: 100 });
+ expect(content.style.paddingBottom).toBe('300px');
+
+ await wrapper.setProps({ height: 400 });
+ expect(content.style.paddingBottom).toBe('0px');
+});