NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name YT Subscriptions Panel
// @description Change view of Youtube subscriptions panel
// @author SzaryMarian
// @copyright 2015, SzaryMarian
// @license (CC); http://creativecommons.org/licenses/by-nc-sa/3.0/
// @namespace .
// @include https://www.youtube.com/*
// @version 1.0
// @grant none
// ==/UserScript==
window.addEventListener('load', function(){
var css=function(){
var css=
'div#m-cont{position:absolute; z-index:1000; min-height:20px; background:#fff; overflow:hidden;}'+
'div#m-cont:hover{box-shadow:0 0 3px #bbb;}'
'';
var s=document.createElement('style');
//s.styleSheet.cssText=css;
s.appendChild(document.createTextNode(css));
document.getElementsByTagName('head')[0].appendChild(s);
}
css();
var getSubsList=function(holder){
var ul=document.getElementById('guide-channels');
var list=ul.getElementsByClassName('guide-channel');
return list
}
var setContainer=function(para){
var cont=document.createElement('div');
cont.id='m-cont'
cont.style.width=(para.width)+'px';
cont.onmouseover=function(){
cont.style.width=(para.width*5)+'px';
};
cont.onmouseout=function(){
cont.style.width=(para.width)+'px';
}
var ul=document.getElementById('guide-channels');
var mul=ul.cloneNode(ul);
ul.style.display='none';
mul.style.width=(para.width*5)+'px';
var list=mul.getElementsByClassName('guide-channel');
for(var i=0; i<list.length; i++){
list[i].style.float='left';
}
cont.appendChild(mul);
var cb=document.createElement('div');
cb.style.clear='both';
cont.appendChild(cb);
return cont;
}
// remove overflow from left side panel
document.getElementById('appbar-guide-menu').style.overflow='unset';
var subs=document.getElementById('guide-subscriptions-section');
var subsListHolder=document.getElementById('guide-subs-footer-container');
var _W=subsListHolder.offsetWidth;
var container=setContainer({
width:_W
});
setTimeout(function(){subsListHolder.style.height=(container.offsetHeight)+'px';}, 500);
subsListHolder.parentNode.insertBefore(container, subsListHolder);
var subsList=getSubsList(subsListHolder);
});