Window floating container

Adds a fixed header element for use by other scripts

Verzia zo dňa 29.11.2016. Pozri najnovšiu verziu.

Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @require https://updategreasyfork.deno.dev/scripts/18233/160525/Window%20floating%20container.js

// ==UserScript==
// @name         Window floating container 
// @version      1.1.2
// @description  Adds a fixed header element for use by other scripts
// @author       @_jnblog
// @require      https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js
// @grant        GM_addStyle
// @grant        GM_getValue
// @grant        GM_setValue
// ==/UserScript==
/* jshint -W097 */
/* global $ */
/* jshint asi: true, multistr: true */
'use strict'


var ijgFloater = $('#ijgWindowFloater')
if (!ijgFloater.length) {
  GM_addStyle('#ijgWindowFloater {\
    position: absolute;\
    top: 100%;\
    left: 0;\
    z-index: 2000;\
    color: white;\
    background-color: #EB6841;\
  }\
  #ijgWindowFloater a {\
    color: white !important;\
    padding: 5px;\
    display: inline-block;\
  }\
  #ijgWindowFloater a:hover {\
    color: #FAF667 !important;\
  }\
  .ijgWindowFloater-item {\
    vertical-align: middle;\
  }\
  .ijg-is-closed .ijgWindowFloater-item {\
    display: none;\
  }\
  .ijgWindowFloater-item + .ijgWindowFloater-item {\
    padding-left: 1em;\
  }\
  .ijgWindowFloater-toggle {\
    background-color: transparent;\
    box-shadow: inset 0 0 0 32px;\
    -webkit-transform-origin: right;\
    -ms-transform-origin: right;\
    transform-origin: right;\
    transform: rotate(180deg);\
    vertical-align: middle;\
    display: inline-block;\
    position: relative;\
    font-style: normal;\
    color: transparent;\
    text-align: left;\
    text-indent: -9999px;\
    direction: ltr;\
    box-sizing: border-box;\
    border: 2px solid white;\
    transition: all .2s;\
    border-radius: 50%;\
    width: 24px;\
    height: 24px;\
    margin: 2px;\
    padding: 0;\
    top: 0;\
    left: -22px;\
  }\
  .ijgWindowFloater-toggle:before,\
  .ijgWindowFloater-toggle:after {\
    content: "";\
    width: 14px;\
    height: 2px;\
    position: absolute;\
    bottom: 0;\
    margin: auto 0;\
    box-shadow: inset 0 0 0 32px;\
    -webkit-transform-origin: right;\
    -ms-transform-origin: right;\
    transform-origin: right;\
    pointer-events: none;\
    width: 9px;\
    right: 6.5px;\
    color: white;\
  }\
  .ijgWindowFloater-toggle:before {\
    top: 2px;\
    -webkit-transform: rotate(45deg);\
    -ms-transform: rotate(45deg);\
    transform: rotate(45deg);\
  }\
  .ijgWindowFloater-toggle:after {\
    top: 0;\
    -webkit-transform: rotate(-45deg);\
    -ms-transform: rotate(-45deg);\
    transform: rotate(-45deg);\
  }\
  .ijg-is-closed .ijgWindowFloater-toggle:before {\
    top: 12px;\
    right: 8px;\
  }\
  .ijg-is-closed .ijgWindowFloater-toggle:after {\
    top: -10px;\
    right: 8px;\
  }')
  
  ijgFloater = $('<div id="ijgWindowFloater">')
  $('.nav-TopSpacer').append(ijgFloater).css('position', 'relative')

  function getFloater() {
    return ijgFloater
  }

  $('<i class="ijgWindowFloater-toggle">')
      .appendTo(ijgFloater)
      .on('click', function() {
    $('#ijgWindowFloater').toggleClass('ijg-is-closed')
    GM_setValue('ijgWindowFloater-closed', $('#ijgWindowFloater').hasClass('ijg-is-closed'))
  })

  var isClosed = GM_getValue('ijgWindowFloater-closed')
  if (isClosed || typeof ijgWindowFloater-closed === 'undefined') {
    $('#ijgWindowFloater').addClass('ijg-is-closed')
  }
}