feat: Scorecard-Browser — skaliert auf 90 % Viewport-Hoehe (mit Width-Fallback)
User: 'Skaliere die Scorecard so, dass sie die Hoehe des Browser Viewports Minus 10% einnimmt' Vorherige Logik nahm scaleByWidth, capped auf 1.0. Jetzt zwei Faktoren und das kleinere gewinnt: - scaleByHeight = window.innerHeight * 0.9 / 1350 - scaleByWidth = (window.innerWidth - 40) / 1080 - scale = min(beiden, max 1.0) Auf einem 1440×900-Desktop ergibt das scale 0.6 (= 90% × 900 / 1350), Card 648×810. Auf einem 390-px-Phone gewinnt die Breite-Begrenzung, Card skaliert kleiner damit horizontal nichts abgeschnitten wird. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2b5062df08
commit
0b5dcba8f9
@ -267,9 +267,10 @@
|
|||||||
</div>{# .card-viewport #}
|
</div>{# .card-viewport #}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
/* Browser-Preview-Skalierung: passt die 1080×1350-Card proportional auf
|
/* Browser-Preview-Skalierung: Card soll 90 % der Viewport-Hoehe einnehmen.
|
||||||
den verfuegbaren Viewport an. WeasyPrint fuehrt kein JS aus → PDF
|
Falls die daraus resultierende Breite ueber den Viewport hinausginge
|
||||||
bleibt bei skalierungsfreier Originalgroesse. */
|
(schmale Mobile-Viewports), greift die Breiten-Begrenzung. WeasyPrint
|
||||||
|
fuehrt kein JS aus → PDF bleibt bei skalierungsfreier Originalgroesse. */
|
||||||
(function () {
|
(function () {
|
||||||
function adjustScale() {
|
function adjustScale() {
|
||||||
var card = document.querySelector('.card');
|
var card = document.querySelector('.card');
|
||||||
@ -278,13 +279,10 @@
|
|||||||
var pad = 40;
|
var pad = 40;
|
||||||
var availW = window.innerWidth - pad;
|
var availW = window.innerWidth - pad;
|
||||||
var availH = window.innerHeight - pad;
|
var availH = window.innerHeight - pad;
|
||||||
var scaleW = availW / 1080;
|
var scaleByHeight = (window.innerHeight * 0.9) / 1350;
|
||||||
var scaleH = availH / 1350;
|
var scaleByWidth = availW / 1080;
|
||||||
var scale = Math.min(scaleW, 1); // bei Desktop nicht hochskalieren
|
var scale = Math.min(scaleByHeight, scaleByWidth);
|
||||||
if (availH < 1350) {
|
if (scale > 1) scale = 1; // nie ueber 100% hochskalieren
|
||||||
// Wenn die Hoehe nicht reicht: scrollen statt nochmal verkleinern
|
|
||||||
// (User kann scrollen, lieber lesbar als mini).
|
|
||||||
}
|
|
||||||
card.style.transform = 'scale(' + scale + ')';
|
card.style.transform = 'scale(' + scale + ')';
|
||||||
viewport.style.width = (1080 * scale) + 'px';
|
viewport.style.width = (1080 * scale) + 'px';
|
||||||
viewport.style.height = (1350 * scale) + 'px';
|
viewport.style.height = (1350 * scale) + 'px';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user