diff --git a/packages/@core/ui-kit/layout-ui/src/vben-layout.vue b/packages/@core/ui-kit/layout-ui/src/vben-layout.vue index bf7d7753f..a35ed349c 100644 --- a/packages/@core/ui-kit/layout-ui/src/vben-layout.vue +++ b/packages/@core/ui-kit/layout-ui/src/vben-layout.vue @@ -403,13 +403,10 @@ watch( ); { - const mouseMove = () => { - mouseY.value > headerWrapperHeight.value - ? (headerIsHidden.value = true) - : (headerIsHidden.value = false); - }; + const HEADER_TRIGGER_DISTANCE = 12; + watch( - [() => props.headerMode, () => mouseY.value], + [() => props.headerMode, () => mouseY.value, () => headerIsHidden.value], () => { if (!isHeaderAutoMode.value || isMixedNav.value || isFullContent.value) { if (props.headerMode !== 'auto-scroll') { @@ -417,8 +414,12 @@ watch( } return; } - headerIsHidden.value = true; - mouseMove(); + + const isInTriggerZone = mouseY.value <= HEADER_TRIGGER_DISTANCE; + const isInHeaderZone = + !headerIsHidden.value && mouseY.value <= headerWrapperHeight.value; + + headerIsHidden.value = !(isInTriggerZone || isInHeaderZone); }, { immediate: true,