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

Function notCrossZoomLimits

scripts/reading.js:2592–2624  ·  view source on GitHub ↗
(x, y, scale = false)

Source from the content-addressed store, hash-verified

2590}
2591
2592function notCrossZoomLimits(x, y, scale = false)
2593{
2594 scale = scale !== false ? scale : scalePrevData.scale;
2595
2596 let indexSize = getIndexImagesSize((config.readingGlobalZoom && readingViewIs('scroll')) ? (currentIndex - 1) : currentZoomIndex);
2597
2598 let maxX = indexSize.width * 0.5 * scale - originalRect.width * 0.5;
2599 let minX = indexSize.width * -0.5 * scale - originalRect.width * -0.5;
2600
2601 if(maxX < 0) maxX = 0;
2602 if(minX > 0) minX = 0;
2603
2604 let maxDiff = readingViewIs('scroll') ? ((originalRect.top + originalRect.height) - (originalRectReadingBody.top + originalRectReadingBody.height)) : 0;
2605 let minDiff = readingViewIs('scroll') ? (originalRect.top - originalRectReadingBody.top) : 0;
2606
2607 let maxY = (indexSize.height * 0.5 * scale - originalRect.height * 0.5) - (minDiff < 0 ? minDiff : 0);
2608 let minY = (indexSize.height * -0.5 * scale - originalRect.height * -0.5) - (maxDiff > 0 ? maxDiff + readingMargin().top : 0);
2609
2610 if(maxY < 0) maxY = 0;
2611 if(minY > 0) minY = 0;
2612
2613 if(x > maxX)
2614 x = maxX;
2615 else if(x < minX)
2616 x = minX;
2617
2618 if(y > maxY)
2619 y = maxY;
2620 else if(y < minY)
2621 y = minY;
2622
2623 return {x: x, y: y, maxX: maxX, maxY: maxY, height: indexSize.height, width: indexSize.width};
2624}
2625
2626// Drag zoom
2627function dragZoom(x, y, animation = false)

Callers 3

applyScaleFunction · 0.85
dragZoomFunction · 0.85
applyMoveZoomWithMouseFunction · 0.85

Calls 3

getIndexImagesSizeFunction · 0.85
readingViewIsFunction · 0.85
readingMarginFunction · 0.85

Tested by

no test coverage detected