Загрузка данных
// ==UserScript==
// @name Кнопка "скрыть тред" увеличение и в конец ряда
// @namespace http://tampermonkey.net
// @version 2.5
// @description Увеличение с жирным черным крестом
// @match *://*.2ch.org/*
// @match *://*.2ch.hk/*
// @match *://*.m2ch.hk/*
// @match *://*.2ch.life/*
// @grant none
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
// 1. Внедряем CSS-стили для кнопки
const style = document.createElement('style');
style.textContent = `
/* Настройка внешнего контейнера SVG кнопки */
svg.post__btn.post__btn_type_hide.icon.desktop.js-processed-btn {
display: inline-block !important;
width: 50px !important;
height: 50px !important;
box-sizing: border-box !important;
margin-left: 10px !important;
border-radius: 8px !important;
/* Базовое состояние: приглушенный сине-лиловый пиксельный стиль */
filter: invert(40%) sepia(20%) saturate(1200%) hue-rotate(220deg) !important;
image-rendering: pixelated !important;
image-rendering: crisp-edges !important;
/* Плавный переход для анимации при наведении (0.2 секунды) */
transition: filter 0.2s ease-in-out, transform 0.2s ease-in-out !important;
}
/* ЭФФЕКТ ПРИ НАВЕДЕНИИ (HOVER) */
/* Исходное состояние кнопки — добавляем быстрое время отклика */
svg.post__btn.post__btn_type_hide.icon.desktop.js-processed-btn {
transition: filter 0.15s ease-in-out, transform 0.15s ease-in-out !important;
}
/* Состояние при наведении */
svg.post__btn.post__btn_type_hide.icon.desktop.js-processed-btn:hover {
/* Смещаем спектр (hue-rotate) в сторону теплого пастельно-розового оттенка
и немного увеличиваем яркость (brightness) */
filter: invert(40%) sepia(20%) saturate(1500%) hue-rotate(310deg) brightness(1.1) !important;
/* Кнопка слегка и аккуратно увеличивается при наведении */
transform: scale(1.01) !important;
}
/* Настройки пикселизации для внутренних элементов */
svg.post__btn.post__btn_type_hide.icon.desktop.js-processed-btn * {
image-rendering: pixelated !important;
image-rendering: crisp-edges !important;
}
`;
document.head.appendChild(style);
// 2. Функция поиска и перемещения кнопок
function modifyButtons() {
// Ищем SVG-кнопки скрытия, которые мы еще не обрабатывали
let svgs = document.querySelectorAll('svg.post__btn.post__btn_type_hide.icon.desktop:not(.js-processed-btn)');
svgs.forEach((svg) => {
let parentDiv = svg.closest('.post__details');
if (parentDiv) {
// Помечаем SVG классом-маркером (CSS применится автоматически)
svg.classList.add('js-processed-btn');
// Переносим саму оригинальную SVG кнопку в самый конец родительского div
// Браузер автоматически заберет её со старого места и вставит в конец
parentDiv.appendChild(svg);
}
});
}
modifyButtons();
// 3. Отслеживание динамической подгрузки постов в треде
const observer = new MutationObserver(() => {
if (document.querySelector('svg.post__btn.post__btn_type_hide.icon.desktop:not(.js-processed-btn)')) {
modifyButtons();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
})();