DeepSeek No Auto-Scroll

Block auto-scroll in DeepSeek while keeping manual scroll control

اعتبارا من 18-03-2025. شاهد أحدث إصدار.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

ستحتاج إلى تثبيت إضافة مثل Stylus لتثبيت هذا النمط.

ستحتاج إلى تثبيت إضافة لإدارة أنماط المستخدم لتتمكن من تثبيت هذا النمط.

ستحتاج إلى تثبيت إضافة لإدارة أنماط المستخدم لتثبيت هذا النمط.

ستحتاج إلى تثبيت إضافة لإدارة أنماط المستخدم لتثبيت هذا النمط.

(لدي بالفعل مثبت أنماط للمستخدم، دعني أقم بتثبيته!)

// ==UserScript==
// @name         DeepSeek No Auto-Scroll
// @description  Block auto-scroll in DeepSeek while keeping manual scroll control
// @match        *://*.deepseek.com/*
// @version 0.0.1.20250318101211
// @namespace https://greatest.deepsurf.us/users/1435046
// ==/UserScript==

(function() {
    'use strict';

    // Function to apply the scroll behavior override
    function applyNoAutoScroll(scrollContainer) {
        // Block auto-scroll attempts while keeping manual control
        Object.defineProperty(scrollContainer, 'scrollTop', {
            set: function() {}, // Empty setter blocks programmatic scroll
            get: () => scrollContainer._realScrollTop || 0, // Preserve actual position
            configurable: true
        });

        // Store real scroll position
        scrollContainer.addEventListener('scroll', () => {
            scrollContainer._realScrollTop = scrollContainer.scrollTop;
        });
    }

    // Watch for the target element using MutationObserver
    const observer = new MutationObserver(() => {
        const scrollContainer = document.querySelector('div.f6004764');
        if (scrollContainer) {
            observer.disconnect(); // Stop observing once the element is found
            applyNoAutoScroll(scrollContainer);
        }
    });

    // Start observing the DOM for changes
    observer.observe(document.body, { childList: true, subtree: true });
})();