MediaWiki:Common.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
/* Restrict zooming out beyond the initial page size on mobile */
$(document).ready(function() {
var initialScale = 1;
    // Add Dark Mode toggle button to the user menu
var pinchStartDistance;
    var darkModeToggle = $('<li id="pt-dark-mode"><a href="#">Dark Mode</a></li>');
    $('#pt-userpage').before(darkModeToggle);


document.addEventListener('gesturestart', function(e) {
    // Event handler for Dark Mode toggle
     pinchStartDistance = getPinchDistance(e);
    darkModeToggle.click(function() {
        $('body').toggleClass('dark-mode');
        // Save the user's preference (optional, requires user authentication)
        // You may need to implement a user preference storage mechanism.
     });
});
});
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;
}

Navigation menu