NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Bandcamp Volume Bar // @version 1.7 // @description adds a volume bar to Bandcamp // @license MIT // @match *://*.bandcamp.com/* // @exclude *://bandcamp.com/* // @grant GM_addStyle // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js // ==OpenUserJS== // @author Mranth0ny62 // @author cuzi // ==/OpenUserJS== // ==/UserScript== if(typeof GM_addStyle == "undefined") { function GM_addStyle(css) { var style = document.createElement("style"); style.setAttribute("type", "text/css"); style.textContent = css; document.getElementsByTagName("head")[0].appendChild(style); } } //Awesome Tags! var iv = setInterval(function() { if($("audio")) { $("audio").attr("id", "audioSource"); clearInterval(iv); } },500); $("<div class='volumeControl'></div>").insertAfter(".inline_player"); $(".volumeControl").append("<div class='speaker'></div>"); $(".volumeControl").append("<div class='volume'></div>"); $(".volume").append("<span class='volumeInner'></span>"); //CSS Time! var percentage = 75; var speakerurl = "http://i.imgur.com/hRWrLHJ.png"; var muteurl = "http://i.imgur.com/5mxvYNN.png"; var color = $("#pgBd").css("background-color"); var css = ".volumeControl { margin-bottom: 10px; }" + ".speaker {" + "position: relative;" + "width: 50px;" + "height: 50px;" + "background: url('"+speakerurl+"') rgba(2,2,2,.1) 50% 50% no-repeat;" + "border-radius: 3px;" + "cursor: pointer;" + "}" + ".volumeInner {" + "position: absolute;" + "bottom: 0;" + "width: "+percentage+"%;" + "height: 20px;" + "background-color: #fff;" + "}" + ".volume {" + "position: relative;" + "width: 80%;" + "height: 20px;" + "margin-top: -35px;" + "float: right;" + "cursor: pointer;" + "background-color: rgba(2,2,2,.1);" + "border: 1px solid rgba(190,190,190,.5);" ; GM_addStyle(css); //Sexy Script! function changeVolume(e) { var clickPos = (e.pageX) - $(".volume").offset().left; var maxWidth = $(".volume").width(); percentage = Math.floor(clickPos / maxWidth * 100); if(percentage > 100) { percentage = 100; $(".volumeInner").css("width", "100%"); } else if(percentage < 0) { percentage = 0; $(".volumeInner").css("width", "0%"); } else { $(".volumeInner").css("width", percentage + "%"); } document.getElementById("audioSource").volume = percentage/100; } $(".volume").mousedown(function(e){ changeVolume(e); $("body").mousemove(function(e){ changeVolume(e); }); }); $(document).mouseup(function(){ $("body").off("mousemove"); }); var mute = false; $(".speaker").click(function(){ if(mute) { mute = false; $(".speaker").css("background-image", "url('"+speakerurl+"')"); $(".volumeInner").css("width", percentage + "%"); document.getElementById("audioSource").volume = percentage/100; } else { mute = true; $(".speaker").css("background-image", "url('"+muteurl+"')"); document.getElementById("audioSource").volume = 0; $(".volumeInner").css("width", "0%"); } });