31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
// ==UserScript==
|
|
// @name Bandcamp: Add volume slider
|
|
// @include https://*.bandcamp.com/*
|
|
// @include https://sewerslvt.com/*
|
|
// @include https://store.sigurros.com/*
|
|
// ==/UserScript==
|
|
function setVolume(volume) {
|
|
document.querySelectorAll("audio").forEach(el => el.volume = volume / 100)
|
|
localStorage.setItem("volume", volume)
|
|
}
|
|
|
|
function loadStoredVolume() {
|
|
return localStorage.getItem("volume") ? Number(localStorage.getItem("volume")) : 25
|
|
}
|
|
|
|
const volumeControlContainer = document.createElement("div")
|
|
volumeControlContainer.style.position = "fixed"
|
|
volumeControlContainer.style.top = 0
|
|
volumeControlContainer.style.left = 0
|
|
volumeControlContainer.style["z-index"] = 10000
|
|
const volumeControlSlider = document.createElement("input")
|
|
volumeControlSlider.type = "range"
|
|
volumeControlSlider.min = 0
|
|
volumeControlSlider.max = 100
|
|
volumeControlSlider.value = loadStoredVolume()
|
|
volumeControlSlider.addEventListener("input", e => {setVolume(e.target.value)})
|
|
volumeControlContainer.appendChild(volumeControlSlider)
|
|
document.body.appendChild(volumeControlContainer)
|
|
|
|
setInterval(() => {setVolume(loadStoredVolume())}, 1000)
|