mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 12:56:41 +07:00
fixed image slider normalizer
This commit is contained in:
parent
fbd64dec4c
commit
2df87f9ab9
1 changed files with 11 additions and 2 deletions
|
@ -101,8 +101,17 @@ const NodeImageSlideBlock: FC<IProps> = ({ node, is_loading, updateLayout }) =>
|
||||||
|
|
||||||
const normalizeOffset = useCallback(() => {
|
const normalizeOffset = useCallback(() => {
|
||||||
const { width: wrap_width } = wrap.current.getBoundingClientRect();
|
const { width: wrap_width } = wrap.current.getBoundingClientRect();
|
||||||
setOffset(Math.round(offset / wrap_width) * wrap_width);
|
const { width: slide_width } = slide.current.getBoundingClientRect();
|
||||||
}, [wrap, offset]);
|
|
||||||
|
const shift = (initial_offset - offset) / wrap_width; // percent / 100
|
||||||
|
const diff = initial_offset - (shift > 0 ? Math.ceil(shift) : Math.floor(shift)) * wrap_width;
|
||||||
|
const new_offset =
|
||||||
|
Math.abs(shift) > 0.33
|
||||||
|
? Math.min(Math.max(diff, wrap_width - slide_width), 0) // next or prev slide
|
||||||
|
: Math.round(offset / wrap_width) * wrap_width; // back to this one
|
||||||
|
|
||||||
|
setOffset(new_offset);
|
||||||
|
}, [wrap, offset, initial_offset]);
|
||||||
|
|
||||||
const updateMaxHeight = useCallback(() => {
|
const updateMaxHeight = useCallback(() => {
|
||||||
if (!wrap.current) return;
|
if (!wrap.current) return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue