您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
lets you hide ui in singleplayer in several different ways
当前为
// ==UserScript== // @name GeoGuessr Hide UI // @namespace https://greasyforks.org/en/users/1501889 // @version 131.2 // @description lets you hide ui in singleplayer in several different ways // @author Clemens // @match https://www.geoguessr.com/* // @icon https://www.google.com/s2/favicons?domain=geoguessr.com // @run-at document-idle // @license MIT // ==/UserScript== (function() { 'use strict'; const localStorageKeyViewMode = 'geoguessr_view_mode_v3'; const localStorageKeyPreviousViewMode = 'geoguessr_previous_view_mode_v3'; const localStorageKeyMapHidden = 'geoguessr_map_hidden_v3'; const mapSelector = 'div[data-qa="guess-map"]'; const compassSelector = '.panorama-compass_compassContainer__VAYam'; const timerSelector = '#timernode'; const scoreAndRoundSelector = '.game_status___YFni .status_inner__eAJp4:not(#timernode)'; const mainStatusContainerSelector = '.game_status___YFni'; const nonMapOverlays = [ '.game_controls__xgq6p', '.game_inGameLogos__T9d3L', 'img[alt="Google Maps Logo"]', 'div[style*="position: absolute; right: 0px; bottom: 0px;"] .gmnoprint', '.duels-panorama_controls___OEib' ]; const allUIElements = nonMapOverlays.concat([ mapSelector, compassSelector, mainStatusContainerSelector ]); const saveAndSetViewMode = (mode) => { const currentMode = localStorage.getItem(localStorageKeyViewMode) || 'default'; if (currentMode !== mode) { localStorage.setItem(localStorageKeyPreviousViewMode, currentMode); } localStorage.setItem(localStorageKeyViewMode, mode); localStorage.setItem(localStorageKeyMapHidden, 'false'); applySavedPreference(); }; const applySavedPreference = () => { const viewMode = localStorage.getItem(localStorageKeyViewMode) || 'default'; const isMapHidden = localStorage.getItem(localStorageKeyMapHidden) === 'true'; document.querySelectorAll(allUIElements.join(', ') + ', ' + scoreAndRoundSelector + ', ' + timerSelector).forEach(el => { el.style.display = 'none'; }); const mainStatus = document.querySelector(mainStatusContainerSelector); if (mainStatus) { mainStatus.style.display = 'none'; } switch (viewMode) { case 'default': { document.querySelectorAll(allUIElements.join(', ') + ', ' + scoreAndRoundSelector + ', ' + timerSelector).forEach(el => { el.style.display = ''; }); break; } case 'minimal': { document.querySelector(mapSelector).style.display = ''; document.querySelector(compassSelector).style.display = ''; break; } case 'focused-timer': { document.querySelector(mapSelector).style.display = ''; document.querySelector(compassSelector).style.display = ''; if (mainStatus) mainStatus.style.display = ''; const timer = document.querySelector(timerSelector); if (timer) timer.style.display = ''; const scoreAndRound = document.querySelector(scoreAndRoundSelector); if (scoreAndRound) scoreAndRound.style.display = 'none'; break; } case 'focused-all-status': { document.querySelector(mapSelector).style.display = ''; document.querySelector(compassSelector).style.display = ''; if (mainStatus) mainStatus.style.display = ''; const scoreAndRound = document.querySelector(scoreAndRoundSelector); if (scoreAndRound) scoreAndRound.style.display = ''; const timer = document.querySelector(timerSelector); if (timer) timer.style.display = ''; break; } case 'all-hidden': { break; } case 'map-only': { document.querySelector(mapSelector).style.display = ''; break; } } if (isMapHidden && (viewMode === 'default' || viewMode === 'minimal' || viewMode === 'focused-timer' || viewMode === 'focused-all-status')) { const mapContainer = document.querySelector(mapSelector); if (mapContainer) mapContainer.style.display = 'none'; } }; const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === 'childList') { const mapElement = document.querySelector(mapSelector); if (mapElement) { applySavedPreference(); } } } }); document.addEventListener('keydown', (event) => { if (event.key === 'h' || event.key === 'j' || event.key === 'k' || event.key === 'z' || event.key === 'u' || event.key === 'i') { event.preventDefault(); } const currentViewMode = localStorage.getItem(localStorageKeyViewMode); if (event.key === 'z') { if (currentViewMode === 'all-hidden') { saveAndSetViewMode('map-only'); } else if (currentViewMode === 'map-only') { saveAndSetViewMode('all-hidden'); } else { const isMapHidden = localStorage.getItem(localStorageKeyMapHidden) === 'true'; localStorage.setItem(localStorageKeyMapHidden, (!isMapHidden).toString()); applySavedPreference(); } } if (event.key === 'u') { if (currentViewMode === 'all-hidden') { const previousMode = localStorage.getItem(localStorageKeyPreviousViewMode); saveAndSetViewMode(previousMode || 'default'); } else { saveAndSetViewMode('all-hidden'); } } if (event.key === 'h') { if (currentViewMode === 'minimal') { const previousMode = localStorage.getItem(localStorageKeyPreviousViewMode); saveAndSetViewMode(previousMode || 'default'); } else { saveAndSetViewMode('minimal'); } } if (event.key === 'j') { if (currentViewMode === 'focused-timer') { const previousMode = localStorage.getItem(localStorageKeyPreviousViewMode); saveAndSetViewMode(previousMode || 'default'); } else { saveAndSetViewMode('focused-timer'); } } if (event.key === 'k') { if (currentViewMode === 'focused-all-status') { const previousMode = localStorage.getItem(localStorageKeyPreviousViewMode); saveAndSetViewMode(previousMode || 'default'); } else { saveAndSetViewMode('focused-all-status'); } } if (event.key === 'i') { saveAndSetViewMode('default'); } }); observer.observe(document.body, { childList: true, subtree: true }); applySavedPreference(); })();