NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @description adapt the position of content of web page to fit the screen consisting of two monitors // @match *://*/* // @name fit the screen consisting of two monitors // @namespace https://github.com/Freed-Wu // @author Wu Zhenyu // @version 0.0.1 // @copyright 2023, Wu Zhenyu // @license GPL-3.0-or-later; https://www.gnu.org/licenses/gpl-3.0.txt // @homepageURL https://github.com/Freed-Wu/fit-the-screen-consisting-of-two-monitors // @supportURL https://github.com/Freed-Wu/fit-the-screen-consisting-of-two-monitors/issues // @contributionURL https://github.com/Freed-Wu/fit-the-screen-consisting-of-two-monitors // ==/UserScript== (function () { "use strict"; let short_parents = new Set(); function get_short_parents(elem) { if (elem.offsetWidth == 0 || elem.offsetHeight == 0) { return; } if (elem.offsetWidth < window.innerWidth) { short_parents.add(elem.parentElement); return; } Array.from(elem.children).forEach(function (elem) { get_short_parents(elem); }); } let body = document.getElementsByTagName("body")[0]; get_short_parents(body); let short_elements = new Set(); short_parents.forEach(function (elem) { let min_offsetLeft = window.innerWidth; let short_element = null; Array.from(elem.children).forEach(function (elem) { if ( elem.offsetHeight > 0 && elem.offsetWidth > 0 && elem.offsetLeft > window.innerWidth / 4 && elem.offsetWidth < (2 * window.innerWidth) / 3 && min_offsetLeft > elem.offsetLeft ) { min_offsetLeft = elem.offsetLeft; short_element = elem; } }); if (short_element != null) { short_elements.add(short_element); } }); short_elements.forEach(function (elem) { let default_left = "5rem"; if (elem.offsetWidth < window.innerWidth / 4) { default_left = "10rem"; } elem.style.marginLeft = default_left; }); })();