您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Resize images to fit the screen
// ==UserScript== // @name HentaiNexus Image Fit to Screen // @namespace https://greasyfork.org/en/users/1314621 // @version 1.0 // @description Resize images to fit the screen // @author paper-jam-spitball-soldier // @match *://hentainexus.com/read/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function fitImageToScreen(img) { img.style.maxWidth = '100vw'; // Calculate available height by subtracting the height of top and bottom elements const topElementsHeight = calculateTopElementsHeight(); const bottomElementsHeight = calculateBottomElementsHeight(); const availableHeight = window.innerHeight - topElementsHeight - bottomElementsHeight; img.style.maxHeight = `${availableHeight}px`; img.style.width = 'auto'; img.style.height = 'auto'; img.style.display = 'block'; img.style.marginLeft = 'auto'; img.style.marginRight = 'auto'; } function calculateTopElementsHeight() { // Adjust this selector to match the elements at the top of your page const topElements = document.querySelectorAll('.header, .navbar'); // Example selectors let totalHeight = 0; topElements.forEach(el => { totalHeight += el.offsetHeight; }); return totalHeight; } function calculateBottomElementsHeight() { // Adjust this selector to match the elements at the bottom of your page const bottomElements = document.querySelectorAll('.footer'); // Example selectors let totalHeight = 0; bottomElements.forEach(el => { totalHeight += el.offsetHeight; }); return totalHeight; } function applyResize() { const images = document.querySelectorAll('img'); images.forEach(img => { fitImageToScreen(img); // Scroll to image after it's fully loaded img.addEventListener('load', () => { scrollToImage(img); }); }); // Scroll to the first image if (images.length > 0) { scrollToImage(images[0]); } } function scrollToImage(img) { const imgRect = img.getBoundingClientRect(); const scrollTop = window.pageYOffset || document.documentElement.scrollTop; const topElementsHeight = calculateTopElementsHeight(); window.scrollTo({ top: imgRect.top + scrollTop - topElementsHeight, behavior: 'smooth' }); } // Initial resize of all images applyResize(); // Resize images on window resize window.addEventListener('resize', applyResize); // Use a MutationObserver to detect new images const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { mutation.addedNodes.forEach((node) => { if (node.nodeName === 'IMG') { fitImageToScreen(node); // Scroll to image after it's fully loaded node.addEventListener('load', () => { scrollToImage(node); }); } else if (node.nodeType === Node.ELEMENT_NODE) { node.querySelectorAll('img').forEach(img => { fitImageToScreen(img); // Scroll to image after it's fully loaded img.addEventListener('load', () => { scrollToImage(img); }); }); } }); }); }); // Observe changes to the document body and its descendants observer.observe(document.body, { childList: true, subtree: true }); })();