fix(@vben-core/layout-ui): stabilize internal layout scrolling
This commit is contained in:
28
packages/@core/ui-kit/layout-ui/src/header-scroll-state.ts
Normal file
28
packages/@core/ui-kit/layout-ui/src/header-scroll-state.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
interface HeaderScrollStateOptions {
|
||||
arrivedTop: boolean;
|
||||
currentHidden: boolean;
|
||||
directionDown: boolean;
|
||||
directionUp: boolean;
|
||||
headerHeight: number;
|
||||
scrollTop: number;
|
||||
}
|
||||
|
||||
export function resolveHeaderHiddenOnScroll({
|
||||
arrivedTop,
|
||||
currentHidden,
|
||||
directionDown,
|
||||
directionUp,
|
||||
headerHeight,
|
||||
scrollTop,
|
||||
}: HeaderScrollStateOptions) {
|
||||
if (arrivedTop || scrollTop < headerHeight) {
|
||||
return false;
|
||||
}
|
||||
if (directionUp) {
|
||||
return false;
|
||||
}
|
||||
if (directionDown) {
|
||||
return true;
|
||||
}
|
||||
return currentHidden;
|
||||
}
|
||||
Reference in New Issue
Block a user