mirror of
https://github.com/cheeaun/phanpy.git
synced 2025-03-23 14:13:21 +01:00
Sometimes need exact distance instead ratio
This commit is contained in:
parent
8fdc430dd5
commit
aca3cb677b
2 changed files with 17 additions and 11 deletions
|
@ -457,7 +457,7 @@ function StatusPage() {
|
||||||
|
|
||||||
const { nearReachStart } = useScroll({
|
const { nearReachStart } = useScroll({
|
||||||
scrollableElement: scrollableRef.current,
|
scrollableElement: scrollableRef.current,
|
||||||
distanceFromStart: 0.2,
|
distanceFromStartPx: 16,
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -7,6 +7,8 @@ export default function useScroll({
|
||||||
scrollThresholdStart = 10,
|
scrollThresholdStart = 10,
|
||||||
scrollThresholdEnd = 10,
|
scrollThresholdEnd = 10,
|
||||||
direction = 'vertical',
|
direction = 'vertical',
|
||||||
|
distanceFromStartPx: _distanceFromStartPx,
|
||||||
|
distanceFromEndPx: _distanceFromEndPx,
|
||||||
} = {}) {
|
} = {}) {
|
||||||
const [scrollDirection, setScrollDirection] = useState(null);
|
const [scrollDirection, setScrollDirection] = useState(null);
|
||||||
const [reachStart, setReachStart] = useState(false);
|
const [reachStart, setReachStart] = useState(false);
|
||||||
|
@ -38,16 +40,20 @@ export default function useScroll({
|
||||||
const scrollDimension = isVertical ? scrollHeight : scrollWidth;
|
const scrollDimension = isVertical ? scrollHeight : scrollWidth;
|
||||||
const clientDimension = isVertical ? clientHeight : clientWidth;
|
const clientDimension = isVertical ? clientHeight : clientWidth;
|
||||||
const scrollDistance = Math.abs(scrollStart - previousScrollStart);
|
const scrollDistance = Math.abs(scrollStart - previousScrollStart);
|
||||||
const distanceFromStartPx = Math.min(
|
const distanceFromStartPx =
|
||||||
clientDimension * distanceFromStart,
|
_distanceFromStartPx ||
|
||||||
scrollDimension,
|
Math.min(
|
||||||
scrollStart,
|
clientDimension * distanceFromStart,
|
||||||
);
|
scrollDimension,
|
||||||
const distanceFromEndPx = Math.min(
|
scrollStart,
|
||||||
clientDimension * distanceFromEnd,
|
);
|
||||||
scrollDimension,
|
const distanceFromEndPx =
|
||||||
scrollDimension - scrollStart - clientDimension,
|
_distanceFromEndPx ||
|
||||||
);
|
Math.min(
|
||||||
|
clientDimension * distanceFromEnd,
|
||||||
|
scrollDimension,
|
||||||
|
scrollDimension - scrollStart - clientDimension,
|
||||||
|
);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
scrollDistance >=
|
scrollDistance >=
|
||||||
|
|
Loading…
Add table
Reference in a new issue