MCPcopy
hub / github.com/ollm/OpenComic / onScroll

Function onScroll

scripts/reading.js:1652–1756  ·  view source on GitHub ↗
(event)

Source from the content-addressed store, hash-verified

1650}
1651
1652function onScroll(event)
1653{
1654 if(!isLoaded || !onReading) return;
1655
1656 if(activeOnScroll && readingViewIs('scroll'))
1657 {
1658 let scrollTop = this.scrollTop;
1659
1660 let center = 0;
1661
1662 let availableScroll = rightSize.scrollHeight - rightSize.height;
1663 let centerOffset = (availableScroll < rightSize.height ? availableScroll : rightSize.height) / 2;
1664
1665 if(scrollTop < centerOffset)
1666 center = scrollTop + (centerOffset * (scrollTop / centerOffset));
1667 else if(scrollTop + centerOffset > availableScroll)
1668 center = scrollTop + centerOffset + (centerOffset * (1 - (availableScroll - scrollTop) / centerOffset));
1669 else
1670 center = scrollTop + centerOffset;
1671
1672 let selIndex = false;
1673 let closest = false;
1674
1675 toBreak:
1676 for(let key1 in imagesFullPosition)
1677 {
1678 for(let key2 in imagesFullPosition[key1])
1679 {
1680 let position = imagesFullPosition[key1][key2];
1681
1682 if(position.top < center && position.bottom > center)
1683 {
1684 selIndex = +key1;
1685 break toBreak;
1686 }
1687 else
1688 {
1689 let diff = Math.abs(position.center - center);
1690
1691 if(closest === false || diff < closest.diff)
1692 {
1693 selIndex = +key1;
1694 closest = {center: position.center, diff: diff};
1695 }
1696 }
1697 }
1698 }
1699
1700 let imgHeight = imagesFullPosition[selIndex][0].bottom - imagesFullPosition[selIndex][0].top + (readingMargin().top * 2);
1701
1702 let pageVisibility = Math.floor(imgHeight / rightSize.height);
1703
1704 maxPageVisibility = pageVisibility;
1705
1706 let contentHeightRes = pageVisibility > 0 ? ((rightSize.height * pageVisibility) - imgHeight) / pageVisibility : 0;
1707
1708 scrollPart = ((rightSize.height - contentHeightRes) - rightSize.height / pageVisibility);
1709

Callers

nothing calls this directly

Calls 7

readingViewIsFunction · 0.85
readingMarginFunction · 0.85
eachImagesDistributionFunction · 0.85
isBookmarkFunction · 0.85
goToImageCLFunction · 0.85
changeHeaderButtonsFunction · 0.85

Tested by

no test coverage detected