🏠 Home 

Greasy Fork is available in English.

Wiki Sticky Table Headings

Makes table headings stick to the top of the screen on wikipedia


Installer dette script?
// ==UserScript==
// @name         Wiki Sticky Table Headings
// @namespace    https://greasyfork.org/en/users/46159-tom-burris2
// @version      0.1
// @description  Makes table headings stick to the top of the screen on wikipedia
// @author       Tom Burris
// @match        https://*.wikipedia.org/wiki/*
// @grant        none
// ==/UserScript==
(function() {
'use strict';
const enableSticky = table => {
let ths = table.getElementsByTagName("th");
for (const th of ths) {
th._bounds = th.getBoundingClientRect();
th.style.position = "sticky";
th.style.top = `${th._bounds.top - table._bounds.top}px`;
}
table._isSticky = true;
};
const disableSticky = table => {
let ths = table.getElementsByTagName("th");
for (const th of ths) th.style.top = "unset";
table._isSticky = false;
};
const onscroll = event => {
let tables = document.getElementsByTagName("table");
for (const table of tables) {
let bounds = table._bounds = table.getBoundingClientRect();
const shouldBeSticky = bounds.top < 0 && -bounds.top < bounds.height;
if (shouldBeSticky != table._isSticky)
(shouldBeSticky ? enableSticky : disableSticky)(table);
}
};
document.addEventListener("scroll", onscroll);
})();