MediaWiki:Common.js: Difference between revisions

From OtherX
Jump to navigation Jump to search
No edit summary
No edit summary
Line 30: Line 30:
         viewport.content = "width=device-width, initial-scale=" + initialScale + ", maximum-scale=1, user-scalable=yes";
         viewport.content = "width=device-width, initial-scale=" + initialScale + ", maximum-scale=1, user-scalable=yes";
     }
     }
}
body {
    max-width: 100%;
    overflow-x: hidden;
}
}

Revision as of 19:48, 24 December 2023

/* Restrict zooming out beyond the initial page size on mobile */
var initialScale = 1;
var pinchStartDistance;

document.addEventListener('gesturestart', function(e) {
    pinchStartDistance = getPinchDistance(e);
});

document.addEventListener('gesturechange', function(e) {
    var pinchDistance = getPinchDistance(e);

    if (pinchDistance > pinchStartDistance) {
        /* Zoom in */
        initialScale *= 1.1;
    } else if (pinchDistance < pinchStartDistance && initialScale > 1) {
        /* Zoom out */
        initialScale /= 1.1;
    }

    updateViewport();
});

function getPinchDistance(e) {
    return Math.hypot(e.touches[0].clientX - e.touches[1].clientX, e.touches[0].clientY - e.touches[1].clientY);
}

function updateViewport() {
    var viewport = document.querySelector("meta[name=viewport]");
    if (viewport) {
        viewport.content = "width=device-width, initial-scale=" + initialScale + ", maximum-scale=1, user-scalable=yes";
    }
}

body {
    max-width: 100%;
    overflow-x: hidden;
}