Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Hide frame
- // @namespace 0chan
- // @include https://0chan.hk/*
- // @author incognito ( https://0chan.hk/s/2840#85120 ), AHOHNMYC
- // @version v0.0.6
- // @grant GM_addStyle
- // ==/UserScript==
- // Скрытие/открытие панели доступно по нажатию клавиши 's'
- const ANIMATION_DURATION = 0.3,
- HIDDEN_SYMBOL = '>>',
- SHOWED_SYMBOL = '<<';
- GM_addStyle(`#sidebarSwitcher {background-color:#2C333D;
- display: table;
- position: fixed;
- top: 0;
- left: 250px;
- width: 30px;
- padding: 0 2px 2px 0;
- border-radius: 0 0 6px 0;
- font-size: 20px;
- opacity: .3;
- z-index: 15;
- cursor: pointer;
- }
- #sidebarSwitcher > span {display: table-cell; vertical-align: middle;}
- #sidebarSwitcher, #sidebar, #content, .headmenu {transition-duration: ${ANIMATION_DURATION}s; transition-timing-function: ease-out;}
- body.hiddenSidebar #sidebar {left: -250px;}
- body.hiddenSidebar #content {margin-left: 0px;}
- body.hiddenSidebar #sidebarSwitcher, body.hiddenSidebar .headmenu {left: 0px;}`);
- try {localStorage;} catch (e){alert('Ты зачем localStorage выключил? Совсем ебанутый? А ну включил обратно!');}
- // Крафтим глобальную переменную-интерфейс к localStorage
- Object.defineProperty(this, 'isHidden', {
- get: ()=>!!localStorage.hiddenSidebar,
- set: bool=>{localStorage.hiddenSidebar = bool ? '1' : '';}
- });
- let label = document.createElement('div'),
- arrow = document.createElement('span');
- label.appendChild(arrow);
- label.classList.add('label');
- label.id = 'sidebarSwitcher';
- document.body.appendChild(label);
- function actualizeSidebar() {
- document.body.classList[isHidden ? 'add' : 'remove']('hiddenSidebar');
- setTimeout(
- ()=>{arrow.innerHTML = isHidden ? HIDDEN_SYMBOL : SHOWED_SYMBOL;},
- ANIMATION_DURATION*1000/2
- );
- }
- // При загрузке вкладки устанавливаем сохранённое ранее состояние
- actualizeSidebar();
- // Отслеживаем, не изменили ли чего на других вкладках
- window.addEventListener('focus', actualizeSidebar);
- function switchSidebar() {
- isHidden = !isHidden;
- actualizeSidebar();
- }
- label.addEventListener('click', switchSidebar);
- const KEYCODE_S = 83;
- window.addEventListener('keyup', e=>{
- if ( e.keyCode !== KEYCODE_S || e.ctrlKey || e.shiftKey || e.altKey ) return;
- // Проверяем, не является ли активный элемент полем ввода
- let node = document.activeElement.nodeName;
- if ( node == 'TEXTAREA' || node == 'INPUT' ) return;
- switchSidebar();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement