Greasy Fork is available in English.

Бегущий статус пользователя - Left

Добавляет анимацию бегущей строки к статусу пользователя и в предпросмотре профиля

// ==UserScript==
// @name         Бегущий статус пользователя - Left
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Добавляет анимацию бегущей строки к статусу пользователя и в предпросмотре профиля
// @author       Alderson
// @match        https://zelenka.guru/*
// @match        https://lolz.live/*
// @match        https://lolz.guru/*
// @match        https://lzt.market/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM.setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM.deleteValue
// @namespace    http://tampermonkey.net/
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Добавление стилей для анимации бегущей строки
    const style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = `
        @keyframes marquee {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }
        .marquee, .userBlurb {
            display: inline-block;
            white-space: nowrap;
            overflow: hidden;
            box-sizing: border-box;
        }
        .marquee span, .userBlurb {
            display: inline-block;
            padding-left: 100%;
            animation: marquee 5s linear infinite;
        }
    `;
    document.head.appendChild(style);

    // Применение анимации к элементам
    const applyMarquee = () => {
        document.querySelectorAll('.marquee span, .userBlurb').forEach(el => {
            if (!el.style.animation) {
                el.style.animation = 'marquee 5s linear infinite';
            }
        });
    };

    // Наблюдение за изменениями в DOM
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.addedNodes.length) {
                applyMarquee();
            }
        });
    });

    observer.observe(document.body, { childList: true, subtree: true });

    // Инициализация при загрузке
    applyMarquee();
})();