Mudanças entre as edições de "MediaWiki:Common.js"

De Micropedia
Ir para navegação Ir para pesquisar
(edição teste 02 - natal efeitos.)
(ajuste)
 
(18 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 34: Linha 34:
 
});
 
});
  
mw.loader.using(['jquery'], function () {
 
  
    function criarFloco() {
 
        const floco = document.createElement("div");
 
        floco.className = "snowflake";
 
        floco.textContent = "❄";
 
  
        // posição inicial aleatória
 
        floco.style.left = Math.random() * 100 + "vw";
 
  
        // tamanho aleatório
+
jQuery(document).ready(function ($) {
        floco.style.fontSize = (10 + Math.random() * 12) + "px";
 
  
        // duração da animação
+
    /* Sai imediatamente se não for a Página principal */
        floco.style.animationDuration = (6 + Math.random() * 6) + "s";
+
    if (!$('body').hasClass('page-Página_principal')) return;
  
        document.body.appendChild(floco);
+
    /* ── 1. CARDS: aplica border-collapse separate via JS
 +
      (fallback para navegadores que ignoram em <table>) ── */
 +
    $('table.mph-card').css({
 +
        'border-radius':  '10px',
 +
        'border-collapse': 'separate',
 +
        'overflow':        'hidden'
 +
    });
  
        // remover depois
+
    /* ── 2. BOTÃO VOLTAR AO TOPO
        setTimeout(() => floco.remove(), 12000);
+
      Reutiliza o #botaoTopo que o wiki já cria,
 +
      ou cria um novo caso não exista ── */
 +
    var $topo = $('#botaoTopo');
 +
    if ($topo.length === 0) {
 +
        $topo = $('<div id="botaoTopo">⬆ Topo</div>').css({
 +
            position:    'fixed',
 +
            bottom:      '20px',
 +
            right:        '20px',
 +
            padding:      '8px 14px',
 +
            background:  '#9bbeab',
 +
            color:        '#1a3a28',
 +
            borderRadius: '8px',
 +
            cursor:      'pointer',
 +
            boxShadow:    '0 2px 6px rgba(0,0,0,0.25)',
 +
            fontWeight:  'bold',
 +
            fontSize:    '13px',
 +
            zIndex:      9999,
 +
            display:      'none'
 +
        });
 +
        $('body').append($topo);
 
     }
 
     }
  
     // cria flocos a cada 300 ms
+
    $(window).on('scroll.mph', function () {
     setInterval(criarFloco, 300);
+
        $topo.toggle($(this).scrollTop() > 400);
 +
    });
 +
    $topo.on('click', function () {
 +
        $('html, body').animate({ scrollTop: 0 }, 300);
 +
    });
 +
 
 +
     /* ── 3. LINKS EXTERNOS nos cards: nova aba ── */
 +
    $('.mph-card a[href^="http"]')
 +
        .not('a[href*="micropedia.com.br"]')
 +
        .not('a[href*="' + window.location.hostname + '"]')
 +
        .attr({ target: '_blank', rel: 'noopener noreferrer' });
 +
 
 +
    /* ── 4. HOVER suave nas imagens dos Acontecimentos Recentes ── */
 +
    $('.mph-card li img').css({
 +
        'vertical-align': 'middle',
 +
        'transition':    'transform 0.15s ease'
 +
    }).on('mouseenter', function () {
 +
        $(this).css('transform', 'scale(1.06)');
 +
     }).on('mouseleave', function () {
 +
        $(this).css('transform', 'scale(1)');
 +
    });
 +
 
 +
    /* ── 5. OCULTAR o título "Página principal" (redundante com o logo) ── */
 +
    $('#firstHeading').hide();
 +
 
 
});
 
});
  
// coloca drift aleatório em cada floco
+
/* ── anti bot teste ── */
document.addEventListener("animationstart", function(e) {
+
$(function () {
     if (e.target.classList.contains("snowflake")) {
+
 
        const desloc = (Math.random() * 40 - 20); // -20px a +20px
+
    // Só roda se estiver em página de edição
         e.target.style.setProperty("--d", desloc + "px");
+
     if (mw.config.get("wgAction") !== "edit") return;
     }
+
 
 +
    const form = document.getElementById('editform');
 +
    if (!form) return;
 +
 
 +
    form.addEventListener('submit', function (e) {
 +
 
 +
        const answer = prompt("Digite o resultado de 2 + 2 para confirmar:");
 +
 
 +
         if (answer !== "4") {
 +
            alert("Erro na verificação.");
 +
            e.preventDefault();
 +
        }
 +
 
 +
     });
 +
 
 
});
 
});

Edição atual tal como às 02h28min de 14 de abril de 2026

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

$(function() {
    // Cria o botão scroll-to-top button
    var $botaoTopo = $('<div id="botaoTopo">⬆️ Topo</div>').css({
        display: "none",
        position: "fixed",
        bottom: "85px", // <-- distância do roda pé (~85px)
        right: "20px",
        padding: "10px 15px",
        background: "#9bbeab",
        color: "#000",
        "border-radius": "8px",
        cursor: "pointer",
        "box-shadow": "0 2px 6px rgba(0,0,0,0.3)",
        "font-weight": "bold",
        "z-index": "9999"
    }).appendTo("body");

    // Mostrar/esconder com base no scroll
    $(window).scroll(function() {
        if ($(this).scrollTop() > $(document).height() / 2) {
            $botaoTopo.fadeIn();
        } else {
            $botaoTopo.fadeOut();
        }
    });

    // Ação ao clicar
    $botaoTopo.click(function() {
        $("html, body").animate({scrollTop: 0}, 500);
        return false;
    });
});




jQuery(document).ready(function ($) {

    /* Sai imediatamente se não for a Página principal */
    if (!$('body').hasClass('page-Página_principal')) return;

    /* ── 1. CARDS: aplica border-collapse separate via JS
       (fallback para navegadores que ignoram em <table>) ── */
    $('table.mph-card').css({
        'border-radius':   '10px',
        'border-collapse': 'separate',
        'overflow':        'hidden'
    });

    /* ── 2. BOTÃO VOLTAR AO TOPO
       Reutiliza o #botaoTopo que o wiki já cria,
       ou cria um novo caso não exista ── */
    var $topo = $('#botaoTopo');
    if ($topo.length === 0) {
        $topo = $('<div id="botaoTopo">⬆ Topo</div>').css({
            position:     'fixed',
            bottom:       '20px',
            right:        '20px',
            padding:      '8px 14px',
            background:   '#9bbeab',
            color:        '#1a3a28',
            borderRadius: '8px',
            cursor:       'pointer',
            boxShadow:    '0 2px 6px rgba(0,0,0,0.25)',
            fontWeight:   'bold',
            fontSize:     '13px',
            zIndex:       9999,
            display:      'none'
        });
        $('body').append($topo);
    }

    $(window).on('scroll.mph', function () {
        $topo.toggle($(this).scrollTop() > 400);
    });
    $topo.on('click', function () {
        $('html, body').animate({ scrollTop: 0 }, 300);
    });

    /* ── 3. LINKS EXTERNOS nos cards: nova aba ── */
    $('.mph-card a[href^="http"]')
        .not('a[href*="micropedia.com.br"]')
        .not('a[href*="' + window.location.hostname + '"]')
        .attr({ target: '_blank', rel: 'noopener noreferrer' });

    /* ── 4. HOVER suave nas imagens dos Acontecimentos Recentes ── */
    $('.mph-card li img').css({
        'vertical-align': 'middle',
        'transition':     'transform 0.15s ease'
    }).on('mouseenter', function () {
        $(this).css('transform', 'scale(1.06)');
    }).on('mouseleave', function () {
        $(this).css('transform', 'scale(1)');
    });

    /* ── 5. OCULTAR o título "Página principal" (redundante com o logo) ── */
    $('#firstHeading').hide();

});

/* ── anti bot teste ── */
$(function () {

    // Só roda se estiver em página de edição
    if (mw.config.get("wgAction") !== "edit") return;

    const form = document.getElementById('editform');
    if (!form) return;

    form.addEventListener('submit', function (e) {

        const answer = prompt("Digite o resultado de 2 + 2 para confirmar:");

        if (answer !== "4") {
            alert("Erro na verificação.");
            e.preventDefault();
        }

    });

});