您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds the ability to scroll through a story by clicking on paragraphs
// ==UserScript== // @name FIMFiction - Clickable Read Flow // @namespace Selbi // @include http*://*fimfiction.net/story/*/*/* // @include http*://*fimfiction.net/chapter/* // @version 3.2 // @grant none // @description Adds the ability to scroll through a story by clicking on paragraphs // ==/UserScript== (function() { "use strict"; // Get elements let chapterBody = document.getElementById("chapter-body"); let paragraphOptionsCloseButton = document.querySelector("#paragraph-options a:last-child"); // Install scroll event listener when clicking on paragraphs const MARGIN_TOP = 20; const BOOKMARK_BOX_MARGIN = 80; const DOUBLE_CLICK_TOLERANCE = 10; fQuery.addScopedEventListener(chapterBody, "p", "click", clickEventListener); function clickEventListener() { if (window.getSelection().toString().length == 0) { // Prevent scroll when anything is selected let y = getTargetY(this); if (Math.abs(y - window.scrollY) < DOUBLE_CLICK_TOLERANCE) { scrollToY(y - BOOKMARK_BOX_MARGIN); } else { scrollToY(y); paragraphOptionsCloseButton.click(); } } } function getTargetY(elem) { let y = Math.round(elem.getBoundingClientRect().top + window.scrollY - MARGIN_TOP); return y; } function scrollToY(y) { window.scrollTo({top: y}); } // Styling function addGlobalStyle(css) { let style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; document.getElementsByTagName('head')[0].appendChild(style); } addGlobalStyle(` #chapter-body p:hover { cursor: pointer; transition: all 200ms ease; color: white !important; } #chapter_toolbar_container { padding-bottom: 0px !important; } `); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址