平滑滚动翻页

使用w和s键进行平滑滚动翻页。

// ==UserScript==
// @name         平滑滚动翻页
// @namespace    http://tampermonkey.net/
// @version      1.4
// @description  使用w和s键进行平滑滚动翻页。
// @author       coccvo
// @match        https://www.qidian.com/*
// @match        https://tieba.baidu.com/*
// @match        https://s.weibo.com/*
// @match        https://weibo.com/*
// @match        https://www.miyoushe.com/*
// @match        https://www.zhihu.com/*
// @match        https://www.bilibili.com/read/*
// @match        https://m.ithome.com/*
// @match        https://www.baidu.com/*
// @match        https://new.oaifree.com/*
// @match        https://www.guancha.cn/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    let initialized = false;

    function initialize() {
        if (initialized) return;
        initialized = true;

        let viewportHeight = window.innerHeight;
        let scrollDistance = viewportHeight * 0.9;

        // 监听按键事件
        document.addEventListener('keydown', function(event) {
            // 检查事件是否发生在输入框内部
            if (event.target.tagName.toLowerCase() === 'input' ||
                event.target.tagName.toLowerCase() === 'textarea') {
                return; // 如果是在输入框内,不执行滚动操作
            }

            if (event.key === 'w') {
                window.scrollBy({
                    top: -scrollDistance,
                    left: 0,
                    behavior: 'smooth'
                });
            } else if (event.key === 's') {
                window.scrollBy({
                    top: scrollDistance,
                    left: 0,
                    behavior: 'smooth'
                });
            }
        });
    }

    // 页面加载完毕后执行
    window.addEventListener('load', function() {
        initialize();
    });

    // 窗口获取焦点时初始化(仅第一次)
    window.addEventListener('focus', function() {
        initialize();
    });
})();