MediaWiki:Common.js:修订间差异

来自AG1444
无编辑摘要
无编辑摘要
 
(未显示同一用户的6个中间版本)
第1行: 第1行:
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
/* 全站加载 Leaflet 地图 */
/* 全站加载 Leaflet 地图 */
mw.loader.load('https://unpkg.com/leaflet@1.9.4/dist/leaflet.css', 'text/css');
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css', 'text/css');
mw.loader.load('https://unpkg.com/leaflet@1.9.4/dist/leaflet.js');
mw.loader.load('https://cdn.rawgit.com/ardhi/Leaflet.MousePosition/master/src/L.Control.MousePosition.css', 'text/css');
 
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js');
mw.loader.using(['mediawiki.util'], function () {
mw.loader.load('https://cdn.rawgit.com/ardhi/Leaflet.MousePosition/master/src/L.Control.MousePosition.js');
console.log('v2');


mw.loader.using('mediawiki.util', function() {


     function initMap() {
     function initMap() {


        // 页面里没有 map 容器就直接退出
         const mapDiv = document.getElementById('map');
         const mapDiv = document.getElementById('map');
         if (!mapDiv) return;
         if (!mapDiv) return;
        // Leaflet 还没加载完就等
         if (typeof L === 'undefined') {
         if (typeof L === 'undefined') {
             setTimeout(initMap, 100);
             setTimeout(initMap, 100);
第20行: 第17行:
         }
         }


         const width = 14090;
        // 地图参数
         const height = 7045;
         const mapExtent = [0, -7045, 14090, 0];
        const mapMinZoom = 0;
         const mapMaxZoom = 5;
        const tileExtent = [0, -7045, 14090, 0];


         const bounds = [[0, 0], [height, width]];
         const crs = L.CRS.Simple;
        crs.transformation = new L.Transformation(1, -tileExtent[0], -1, tileExtent[3]);
        crs.scale = function(zoom) {
            return Math.pow(2, zoom) / Math.pow(2, mapMaxZoom);
        };
        crs.zoom = function(scale) {
            return Math.log(scale * Math.pow(2, mapMaxZoom)) / Math.LN2;
        };


         const map = L.map('map', {
         const map = L.map('map', {
            crs: L.CRS.Simple,
             minZoom: mapMinZoom,
             minZoom: 0,
             maxZoom: mapMaxZoom,
             maxZoom: 5,
             crs: crs
             zoomControl: true,
            maxBounds: bounds
         });
         });


         map.fitBounds(bounds);
         const layer = L.tileLayer('/map/tiles/{z}/{x}/{y}.jpg', {
 
             minZoom: mapMinZoom,
        L.tileLayer('/map/tiles/{z}/{x}/{y}.jpg', {
            maxZoom: mapMaxZoom,
             tileSize: 512,
             tileSize: L.point(512, 512),
             bounds: bounds,
             noWrap: true,
             noWrap: true,
             tms: true
             tms: false
         }).addTo(map);
         }).addTo(map);


        map.fitBounds([
            crs.unproject(L.point(mapExtent[2], mapExtent[3])),
            crs.unproject(L.point(mapExtent[0], mapExtent[1]))
        ]);
        L.control.mousePosition().addTo(map);
     }
     }



2026年2月4日 (三) 04:22的最新版本

/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
/* 全站加载 Leaflet 地图 */
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css', 'text/css');
mw.loader.load('https://cdn.rawgit.com/ardhi/Leaflet.MousePosition/master/src/L.Control.MousePosition.css', 'text/css');
mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js');
mw.loader.load('https://cdn.rawgit.com/ardhi/Leaflet.MousePosition/master/src/L.Control.MousePosition.js');

mw.loader.using('mediawiki.util', function() {

    function initMap() {

        const mapDiv = document.getElementById('map');
        if (!mapDiv) return;
        if (typeof L === 'undefined') {
            setTimeout(initMap, 100);
            return;
        }

        // 地图参数
        const mapExtent = [0, -7045, 14090, 0];
        const mapMinZoom = 0;
        const mapMaxZoom = 5;
        const tileExtent = [0, -7045, 14090, 0];

        const crs = L.CRS.Simple;
        crs.transformation = new L.Transformation(1, -tileExtent[0], -1, tileExtent[3]);
        crs.scale = function(zoom) {
            return Math.pow(2, zoom) / Math.pow(2, mapMaxZoom);
        };
        crs.zoom = function(scale) {
            return Math.log(scale * Math.pow(2, mapMaxZoom)) / Math.LN2;
        };

        const map = L.map('map', {
            minZoom: mapMinZoom,
            maxZoom: mapMaxZoom,
            crs: crs
        });

        const layer = L.tileLayer('/map/tiles/{z}/{x}/{y}.jpg', {
            minZoom: mapMinZoom,
            maxZoom: mapMaxZoom,
            tileSize: L.point(512, 512),
            noWrap: true,
            tms: false
        }).addTo(map);

        map.fitBounds([
            crs.unproject(L.point(mapExtent[2], mapExtent[3])),
            crs.unproject(L.point(mapExtent[0], mapExtent[1]))
        ]);

        L.control.mousePosition().addTo(map);
    }

    $(initMap);
});

//BGM
mw.loader.using('mediawiki.util', function () {

    const bgm = new Audio('/bgm/英雄主义pt.2.mp3');
    bgm.loop = true;
    bgm.volume = 0.5;

    //按钮
    const btn = document.createElement('button');
    btn.textContent = '🎵';
    btn.style.position = 'fixed';
    btn.style.right = '12px';
    btn.style.bottom = '12px';
    btn.style.zIndex = '9999';
    btn.style.padding = '6px 10px';
    btn.style.background = '#333';
    btn.style.color = '#fff';
    btn.style.border = 'none';
    btn.style.borderRadius = '6px';
    btn.style.cursor = 'pointer';
    //点击逻辑
    btn.onclick = function () {
        if (bgm.paused) {
            bgm.play();
            btn.textContent = '🎵';
        } else {
            bgm.pause();
            btn.textContent = '⏸';
        }
    };
    document.body.appendChild(btn);
});