REMOVA OS ANÚNCIOS!

Apoiando através de https://apoia.se/arddhu a partir do tier de Apoiador, você pode navegar na wiki sem anúncios e ainda colabora com o projeto!

MediaWiki:Common.js: mudanças entre as edições

De Runarcana Wiki
Sem resumo de edição
Sem resumo de edição
Linha 39: Linha 39:


mw.loader.load( 'https://wiki.runarcana.org/util/ptoc.css', 'text/css' );
mw.loader.load( 'https://wiki.runarcana.org/util/ptoc.css', 'text/css' );
mw.loader.using('jquery.throttle-debounce', function(){
mw.loader.using('jquery.throttle-debounce', function() {
     $(function(){
     $(document).ready(function() {
         var $window = $(window);
         var $window, $mwPanel, $floatTOC, scrollHandler, tocLimit, headingOffsets, headingThreshold, $toc = $('#toc');
        var $mwPanel = $('#mw-panel');
         if (!$toc.length) {
        var $toc = $('#toc');
        var $floatTOC;
 
        // Exit if TOC element does not exist
         if(!$toc.length){
             return;
             return;
         }
         }
       
 
         // Create a clone of TOC element and add class and styles
         // Add a "hide" link before the TOC
         $floatTOC = $toc.clone()
        $toc.before('<a href="#" id="hide-link">hide</a>');
                      .removeAttr('id')
 
                      .addClass('floatTOC')
        // Hide the mw-panel element when the "hide" link is clicked
                      .appendTo('body')
        $('#hide-link').click(function(e) {
                      .css({visibility: 'hidden', opacity: 0});
            e.preventDefault();
            $mwPanel.slideToggle();
        });
 
        $window = $(window);
        $mwPanel = $('#mw-panel');
        headingThreshold = $window.height() / 5.0;
         $floatTOC = $toc.clone().removeAttr('id').addClass('floatTOC').appendTo('body').css({
            visibility: 'hidden',
            opacity: 0
        });
         $floatTOC.find('ul').show();
         $floatTOC.find('ul').show();
 
         $floatTOC.find('a').click(function(e) {
        // Add click event to TOC links
         $floatTOC.find('a').click(function(e){
             $('html, body').animate({
             $('html, body').animate({
                 scrollTop: $(this.hash.replace(/\./g,'\\.')).offset().top - ($window.height()/5.0)
                 scrollTop: $(this.hash.replace(/\./g, '\\.')).offset().top - headingThreshold
             });
             });
             return false;
             return false;
         });
         });
 
         tocLimit = $toc.offset().top + $toc.height();
        // Add mouse events to TOC parent element
         headingOffsets = [];
        $toc.parent().on('mouseover', function(){
         $('.mw-headline').each(function() {
            $toc.show();
        });
        $toc.parent().on('mouseout', function(){
            $toc.hide();
        });
 
        // Make the TOC element draggable
        $floatTOC.draggable();
 
        // Add scroll event
         var tocLimit = $toc.offset().top + $toc.height();
         var headingOffsets = [];
         $('.mw-headline').each(function(){
             headingOffsets.push([$(this).attr('id'), $(this).offset().top]);
             headingOffsets.push([$(this).attr('id'), $(this).offset().top]);
         });
         });
         var scrollHandler = function(){
         scrollHandler = function() {
             var $current, scrollTop = $window.scrollTop();
             var $current, scrollTop = $window.scrollTop();
             if(scrollTop > tocLimit){
             if (scrollTop > tocLimit) {
                 $floatTOC.css({visibility: 'visible', opacity: 1});
                 $floatTOC.css({
                    visibility: 'visible',
                    opacity: 1
                });
                 $mwPanel.hide();
                 $mwPanel.hide();
                 var highlight = false;
                 var highlight = false;
                 $.each(headingOffsets, function(i,v){
                 $.each(headingOffsets, function(i, v) {
                     if(i !== 0 && (scrollTop + ($window.height()/5.0)) < v[1]){
                     if (i !== 0 && (scrollTop + headingThreshold) < v[1]) {
                         highlight = headingOffsets[i-1][0];
                         highlight = headingOffsets[i - 1][0];
                         return false;
                         return false;
                     }
                     }
                 });
                 });
                 if(highlight){
                 if (highlight) {
                     $current = $floatTOC.find('a[href="#' + highlight + '"]');
                     $current = $floatTOC.find('a[href="#' + highlight + '"]');
                     $floatTOC.find('a').not($current).css('font-weight','');
                     $floatTOC.find('a').not($current).css('font-weight', '');
                     $current.css('font-weight','bold');
                     $current.css('font-weight', 'bold');
                 }
                 }
             }
             } else {
            else{
                 $floatTOC.css({
                 $floatTOC.css({visibility: 'hidden', opacity: 0});
                    visibility: 'hidden',
                    opacity: 0
                });
                 $mwPanel.show();
                 $mwPanel.show();
             }
             }

Edição das 23h12min de 12 de janeiro de 2023

/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */

$(document).ready(function() {
    var tables = document.getElementsByClassName("organize");
    Array.prototype.forEach.call(tables, function(table) {
        var rows, switching, i, x, y, shouldSwitch;
        switching = true;
        /* Make a loop that will continue until
        no switching has been done: */
        while (switching) {
            // start by saying: no switching is done:
            switching = false;
            rows = table.rows;
            /* Loop through all table rows (except the
            first, which contains table headers): */
            for (i = 1; i < (rows.length - 1); i++) {
                // start by saying there should be no switching:
                shouldSwitch = false;
                /* Get the two elements you want to compare,
                one from current row and one from the next: */
                x = rows[i].getElementsByTagName("TD")[0];
                y = rows[i + 1].getElementsByTagName("TD")[0];
                // check if the two rows should switch place:
                if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
                    // if so, mark as a switch and break the loop:
                    shouldSwitch = true;
                    break;
                }
            }
            if (shouldSwitch) {
                /* If a switch has been marked, make the switch
                and mark that a switch has been done: */
                rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
                switching = true;
            }
        }
    });
});

mw.loader.load( 'https://wiki.runarcana.org/util/ptoc.css', 'text/css' );
mw.loader.using('jquery.throttle-debounce', function() {
    $(document).ready(function() {
        var $window, $mwPanel, $floatTOC, scrollHandler, tocLimit, headingOffsets, headingThreshold, $toc = $('#toc');
        if (!$toc.length) {
            return;
        }

        // Add a "hide" link before the TOC
        $toc.before('<a href="#" id="hide-link">hide</a>');

        // Hide the mw-panel element when the "hide" link is clicked
        $('#hide-link').click(function(e) {
            e.preventDefault();
            $mwPanel.slideToggle();
        });

        $window = $(window);
        $mwPanel = $('#mw-panel');
        headingThreshold = $window.height() / 5.0;
        $floatTOC = $toc.clone().removeAttr('id').addClass('floatTOC').appendTo('body').css({
            visibility: 'hidden',
            opacity: 0
        });
        $floatTOC.find('ul').show();
        $floatTOC.find('a').click(function(e) {
            $('html, body').animate({
                scrollTop: $(this.hash.replace(/\./g, '\\.')).offset().top - headingThreshold
            });
            return false;
        });
        tocLimit = $toc.offset().top + $toc.height();
        headingOffsets = [];
        $('.mw-headline').each(function() {
            headingOffsets.push([$(this).attr('id'), $(this).offset().top]);
        });
        scrollHandler = function() {
            var $current, scrollTop = $window.scrollTop();
            if (scrollTop > tocLimit) {
                $floatTOC.css({
                    visibility: 'visible',
                    opacity: 1
                });
                $mwPanel.hide();
                var highlight = false;
                $.each(headingOffsets, function(i, v) {
                    if (i !== 0 && (scrollTop + headingThreshold) < v[1]) {
                        highlight = headingOffsets[i - 1][0];
                        return false;
                    }
                });
                if (highlight) {
                    $current = $floatTOC.find('a[href="#' + highlight + '"]');
                    $floatTOC.find('a').not($current).css('font-weight', '');
                    $current.css('font-weight', 'bold');
                }
            } else {
                $floatTOC.css({
                    visibility: 'hidden',
                    opacity: 0
                });
                $mwPanel.show();
            }
        }
        $window.on('scroll', $.throttle(250, scrollHandler));
    });
});