Auto Scroll Up & Down

Auto-scroll any page. Press "S" to scroll down, Shift+S to scroll up. Use ↑ and ↓ to adjust speed in real time.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         Auto Scroll Up & Down
// @namespace    http://tampermonkey.net/
// @version      2.2
// @description  Auto-scroll any page. Press "S" to scroll down, Shift+S to scroll up. Use ↑ and ↓ to adjust speed in real time.
// @author       Syntax-Surfer-1
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    let isScrolling = false;
    let scrollInterval = null;
    let scrollDirection = 1;
    let scrollSpeed = 20;
    const SCROLL_STEP = 1;
    let hasShownInstructions = false;

    function startScrolling() {
        if (!scrollInterval) {
            scrollInterval = setInterval(() => {
                window.scrollBy(0, scrollDirection * SCROLL_STEP);
            }, scrollSpeed);
            console.log(`✅ Auto-scroll ${scrollDirection === 1 ? 'down' : 'up'} started.`);

            if (!hasShownInstructions) {
                alert('🖱️ Auto Scroll Started!\n\nControls:\n- "S" = scroll down\n- "Shift + S" = scroll up\n- "↑ / ↓" = adjust speed');
                console.log('🖱️ Controls:\n- S = scroll down\n- Shift+S = scroll up\n- ↑ / ↓ = adjust speed');
                hasShownInstructions = true;
            }
        }
    }

    function stopScrolling() {
        if (scrollInterval) {
            clearInterval(scrollInterval);
            scrollInterval = null;
            console.log("⏹️ Auto-scroll stopped.");
        }
    }

    function toggleScrolling(direction = 1) {
        if (isScrolling && scrollDirection === direction) {
            stopScrolling();
            isScrolling = false;
        } else {
            stopScrolling();
            scrollDirection = direction;
            startScrolling();
            isScrolling = true;
        }
    }

    function restartScrolling() {
        if (isScrolling) {
            stopScrolling();
            startScrolling();
        }
    }

    document.addEventListener('keydown', (e) => {
        if (e.repeat) return;
        const key = e.key;

        if (key.toLowerCase() === 's') {
            toggleScrolling(e.shiftKey ? -1 : 1);
        }

        if (key === 'ArrowUp') {
            e.preventDefault();
            scrollSpeed = Math.max(5, scrollSpeed - 5);
            restartScrolling();
            console.log(`⚡ Faster scroll (speed: ${scrollSpeed}ms)`);
        }

        if (key === 'ArrowDown') {
            e.preventDefault();
            scrollSpeed += 5;
            restartScrolling();
            console.log(`🐢 Slower scroll (speed: ${scrollSpeed}ms)`);
        }
    });
})();