AcFun滚轮调音量

AcFun滚轮调音量, change AcFun's volume by scroll.

目前为 2022-10-18 提交的版本。查看 最新版本

// ==UserScript==
// @name         AcFun滚轮调音量
// @namespace    https://github.com/TitanRGB
// @version      2.0
// @description  AcFun滚轮调音量, change AcFun's volume by scroll.
// @author       https://github.com/TitanRGB
// @include      *://www.acfun.cn/v/ac*
// @include      *://www.acfun.cn/bangumi/aa*
// @include      *://*.acfun.cn/v/ac*
// @include      *://*.acfun.cn/bangumi/aa*
// @include      *://acfun.cn/v/ac*
// @include      *://acfun.cn/bangumi/aa*
// @exclude      *://*.eggvod.cn/*
// @connect      www.acfun.cn
// @connect      *.acfun.cn
// @connect      acfun.cn
// @license      Mozilla Public License 2.0
// @grant        GM_xmlhttpRequest
// @grant        GM_log
// @grant        unsafeWindow
// @homepageURL       https://github.com/SynRGB/AcFunScrollVolume
// @contributionURL   https://github.com/SynRGB/AcFunScrollVolume
// ==/UserScript==
// 防止和Chrome插件版本冲突

// 一次滚轮滚动会触发两次按键, 用此变量做修正
let count_amend_singleScrollTriggeredTwoTimes = 0;
// 待界面加载完成
window.onload = () => {
    // 当滚动滚轮, 模拟按下↑↓
    let scroll = function (e) {
        e = e || window.event;
        // 仅在全屏时生效
        if (document.querySelector('[data-bind-attr="screen"]') !== null) {
            // 一次滚轮滚动会触发两次按键, 用此变量做修正
            if (count_amend_singleScrollTriggeredTwoTimes === 0) {
                // 一次滚轮滚动会触发两次按键, 用此变量做修正
                count_amend_singleScrollTriggeredTwoTimes = 1;
                if (e.wheelDelta) {//////////////////////////////// Chrome
                    // 向上滚动
                    if (e.wheelDelta > 0) {
                        unsafeWindow.player.volume++;
                    }
                    // 向下滚动
                    if (e.wheelDelta < 0) {
                        // pressKey(40);
                        unsafeWindow.player.volume--;
                    }
                } else if (e.detail) {///////////////////////////// Firefox
                    // 向上滚动
                    if (e.detail > 0) {
                        unsafeWindow.player.volume++;
                    }
                    // 向下滚动
                    if (e.detail < 0) {
                        unsafeWindow.player.volume--;
                    }
                }
                // 音量显示
                try {
                    document.querySelector('#volumeText').remove();
                } catch (e) {}
                let screen = document.querySelector('[data-bind-attr="screen"]');
                let volume = unsafeWindow.player.volume;
                let volumeText = document.createElement('div');
                volumeText.setAttribute('id', 'volumeText');
                volumeText.setAttribute('style', `
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    font-size: 50px;
                    color: #fff;
                    text-shadow: 0 0 10px #000;
                `);
                volumeText.innerHTML = volume.toString().substring(0, 2).replace('.', '') + "%";
                screen.appendChild(volumeText);
                setTimeout(() => {
                    screen.removeChild(volumeText);
                }, 500);
            } else {
                // 一次滚轮滚动会触发两次按键, 用此变量做修正
                count_amend_singleScrollTriggeredTwoTimes = 0;
            }
        }
    };
    // 给页面绑定滑轮滚动事件 - Firefox
    if (document.addEventListener) {
        document.addEventListener('DOMMouseScroll', scroll, false);
    }
    // 给页面绑定滑轮滚动事件 - Chrome, IE
    window.onmousewheel = document.onmousewheel = scroll;
};
console.log("JS script AcFUNScrollVolume (AcFUN滚轮调音量) loaded. See more details at https://github.com/SynRGB/AcFun-ScrollVolume");

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址