Greasy Fork

Greasy Fork is available in English.

B站音量调节幅度改至2% 恢复鼠标滚轮控制音量功能(解除Power Mouse X屏蔽)

将B站上下箭头按键的音量调节幅度设置为2%,增加鼠标滚轮控制音量功能(原本可以使用,但装了Power Mouse X插件被屏蔽了)

// ==UserScript==
// @name         B站音量调节幅度改至2% 恢复鼠标滚轮控制音量功能(解除Power Mouse X屏蔽)
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  将B站上下箭头按键的音量调节幅度设置为2%,增加鼠标滚轮控制音量功能(原本可以使用,但装了Power Mouse X插件被屏蔽了)
// @author       sidebar AI生成修改
// @match        *://www.bilibili.com/video/*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    const volumeStep = 0.02; // 每次调整的音量变化(2%)
    const videoSelector = 'video'; // 选择器用于选择视频元素

// 监听视频元素的点击事件,以设置激活状态
    const video = document.querySelector(videoSelector);

    //if (video) {
      //  video.addEventListener('', function() {
            //isVideoActive = true;
            //video.play();
        //    if(video &&document.fullscreenElement){ }
        //    else
       //     {
        //    video.webkitRequestFullscreen();
        //    console.log('焦点');}
            // 点击视频时设置为激活状态
            //document.querySelector('mirror-vdcon').click();
            //video.click();
            
      //  });}

    // 调整音量的函数
    const adjustVolume = (change) => {
        const video = document.querySelector(videoSelector);
        if (video) {
            video.volume = Math.min(1, Math.max(0, video.volume + change)); // 确保音量在 0 - 1 之间
console.log('增加后当前音量:', (video.volume ).toFixed(2) + '');

        }
    };

// 初始设置位置


    document.addEventListener('keydown', function(event) {
        const video = document.querySelector(videoSelector);
        switch (event.key) {
            case 'ArrowUp':
                 if (video&& document.activeElement === video) {
                adjustVolume(-0.08);}else{adjustVolume(0.02)} // 增加音量
                event.preventDefault();
event.stopPropagation();
                break;
            case 'ArrowDown':
                if (video&& document.activeElement === video) {
                adjustVolume(0.08);}else{adjustVolume(-0.02)} // 减少音量
event.stopPropagation();
                event.preventDefault();
                break;
        }
    });

   /* // 监听鼠标滚轮事件
    document.addEventListener('wheel', function(event) {
        // 检查是否在视频区域内
        const video = document.querySelector(videoSelector);
        if (video && document.fullscreenElement) { // 仅在全屏时有效
            // 向上滚动增加音量,向下滚动减少音量
            adjustVolume(event.deltaY > 0 ? -volumeStep : volumeStep);
            //event.preventDefault(); // 防止页面滚动
        }
    });
    */
    // 监听鼠标滚轮事件
document.addEventListener('wheel', function(event) {
    // 查找视频元素
    const video = document.querySelector(videoSelector);

    // 检查视频元素是否存在
    if (video) {
        // 获取视频元素的边界框
        const rect = video.getBoundingClientRect();

        // 检查鼠标是否在视频区域内
        const isMouseOverVideo = (
            event.clientX >= rect.left &&
            event.clientX <= rect.right &&
            event.clientY >= rect.top &&
            event.clientY <= rect.bottom
        );

        // 如果鼠标在视频区域内,调整音量
        if (isMouseOverVideo) {
            // 向上滚动增加音量,向下滚动减少音量
            adjustVolume(event.deltaY > 0 ? -volumeStep : volumeStep);
            event.preventDefault(); // 防止页面滚动
            event.stopPropagation(); // 停止事件传播
              // 禁用页面滚动
            document.body.style.overflow = 'hidden';
        } else {
            // 恢复页面滚动
            document.body.style.overflow = 'auto';
        }
    }
}, { passive: false }); // 设置为非被动事件监听器

// 添加鼠标离开事件以恢复滚动
document.addEventListener('mouseleave', function() {
    document.body.style.overflow = 'auto'; // 鼠标离开页面时恢复滚动
});

    setInterval(function(){
        console.log(document.activeElement)
    },100000);




})();