您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds volume control with mouse scroll on page video.
- // ==UserScript==
- // @name Video Volume Control
- // @namespace GamateKID
- // @version 1.7
- // @license MIT
- // @author GamateKID
- // @description Adds volume control with mouse scroll on page video.
- // @match *://*/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function secondsElapsed(){
- var endTime = new Date();
- var timeDiff = endTime - startTime; //in ms
- timeDiff /= 1000;
- // return seconds
- return Math.round(timeDiff);
- }
- function onReady(){
- if(secondsElapsed()<15){
- window.condition()?setTimeout(onReady,9):window.callback();
- }
- }
- var startTime = new Date();
- window.condition = function () {
- return (document.readyState == 'complete');
- };
- window.callback = function () {
- let VOLUME_DELTA = 0.05;
- const style = document.createElement('style');
- document.querySelector('head').appendChild(style);
- initStyles();
- window.condition = function () {
- return (document.getElementsByTagName('video')[0]==null);
- };
- window.callback = function(){
- var video = document.getElementsByTagName('video')[0];
- console.log(video);
- var volume = document.createElement('div');
- volume.className = 'myvolume'
- var container = video.parentNode;
- container.appendChild(volume);
- var isMouseOverVideo = false;
- video.addEventListener('loadeddata', function() {
- volume.innerText = parseInt(video.volume * 100);
- volume.style.display = 'block';
- setTimeout(function() { volume.style.display = 'none' }, 5000);
- }, false);
- video.addEventListener("mouseover", (event) => {
- isMouseOverVideo = true;
- }, false);
- video.addEventListener("mouseleave", (event) => {
- isMouseOverVideo = false;
- }, false);
- document.addEventListener("wheel", (event) => {
- if(isMouseOverVideo){
- event.preventDefault();
- volume.style.display = 'block';
- var volumeValue = video.volume;
- if (event.deltaY < 0) {
- if(video.muted) video.muted = false;
- if(video.volume <= (1-VOLUME_DELTA)){
- volumeValue = video.volume + VOLUME_DELTA;
- }else{
- video.volume = 1;
- }
- }
- if (event.deltaY > 0) {
- if(video.volume >= VOLUME_DELTA){
- volumeValue = video.volume - VOLUME_DELTA;
- }else{
- video.volume = 0;
- }
- }
- volumeValue = Math.round((volumeValue) * 100);
- volumeValue = Math.ceil(volumeValue / 5) * 5;
- volumeValue = volumeValue / 100;
- video.volume = volumeValue;
- volume.innerText = parseInt(video.volume * 100);
- setTimeout(function() { volume.style.display = 'none' }, 5000);
- }
- }, false);
- document.addEventListener("keydown", (event) => {
- if (event.keyCode === 37 /*left*/ || event.keyCode === 65 /*left*/ ) {
- video.currentTime -= 5;
- }
- if(event.keyCode === 39 /*right*/ || event.keyCode === 68 /*right*/){
- video.currentTime += 5;
- }
- }, false);
- };
- onReady();
- //CSS styles override
- function initStyles() {
- /* style.innerHTML = `
- .myvolume {
- display: none;
- position: absolute;
- color: orangered;
- left: 1em;
- font-size: xx-large;
- font-weight: bold;
- top: 0.7em;
- }
- `;*/
- style.innerHTML = `
- .myvolume {
- width: 100%;
- position: absolute;
- z-index: 9999;
- top: 0.7em;
- color: lime;
- font-weight: bold;
- font-size: 40px;
- text-align: right;
- -webkit-text-stroke: 1px black;
- right: 20px;
- }
- `;
- }
- };
- onReady();
- })();