您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Tap the top or bottom of the screen to scroll the page up or down, while ignoring taps on links and interactive elements. Double-tap to close active article (only on FreshRSS). Preserve original double-click behavior on other websites.
当前为
// ==UserScript== // @name Tap to Scroll (Ignore Links) // @namespace http://tampermonkey.net/ // @version 1.5 // @description Tap the top or bottom of the screen to scroll the page up or down, while ignoring taps on links and interactive elements. Double-tap to close active article (only on FreshRSS). Preserve original double-click behavior on other websites. // @author Your Name // @homepage https://gf.qytechs.cn/en/scripts/525817 // @match *://*/* // @grant none // ==/UserScript== (function () { 'use strict'; // Define the threshold for tap zones (e.g., top 20% and bottom 20% of the screen) const tapZoneThreshold = 0.2; // 20% of the screen height // Single-tap event for scrolling document.addEventListener('click', function (event) { // Check if the tap is on an interactive element (e.g., link, button, input) const interactiveElements = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL']; if (interactiveElements.includes(event.target.tagName)) { return; // Ignore taps on interactive elements } const screenHeight = window.innerHeight; const tapY = event.clientY; // Y-coordinate of the tap // Determine if the tap is in the top or bottom zone if (tapY < screenHeight * tapZoneThreshold) { // Tap in the top zone: scroll up window.scrollBy({ top: -window.innerHeight * 0.8, behavior: 'smooth' }); } else if (tapY > screenHeight * (1 - tapZoneThreshold)) { // Tap in the bottom zone: scroll down window.scrollBy({ top: window.innerHeight * 0.8, behavior: 'smooth' }); } }); // Double-tap event document.addEventListener('dblclick', function (event) { // Check if the current webpage is FreshRSS const isFreshRSS = window.document.title.endsWith("· FreshRSS"); // Adjust the condition as needed if (isFreshRSS) { // Custom behavior for FreshRSS // Check if the double-tap is on an interactive element const interactiveElements = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'LABEL']; if (interactiveElements.includes(event.target.tagName)) { return; // Ignore double-taps on interactive elements } // Find the closest element with both 'current' and 'active' classes const activeElement = event.target.closest('.current.active'); if (activeElement) { // Remove the 'active' class activeElement.classList.remove('active'); // console.log('Removed "active" class from:', activeElement); // Wait for any DOM updates to complete setTimeout(() => { // Calculate the new position to scroll to // This ensures the element stays in the same relative position on screen const newRect = activeElement.getBoundingClientRect(); const scrollAdjustment = newRect.top - elementRect.top; // Scroll to the element's new position window.scrollTo({ top: currentScrollY + scrollAdjustment, behavior: 'smooth' }); }, 50); // Small delay to ensure DOM updates are complete } } else { // Allow the original double-click behavior on non-FreshRSS webpages return; // Do nothing, let the browser handle the double-click } }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址