MediaWiki:Common.js
Ir para navegação
Ir para pesquisar
Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.
- Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
- Opera: Pressione Ctrl-F5.
$(document).ready(function() {
const $document = $(document);
const $window = $(window);
const $referencia_tip = $('#referencia_tip');
const $mw_head = $('#mw-head');
const $mw_body = $('.mw-body, #p-personal, #right-navigation');
const $toc = $('.toc');
const $relacionados = $('.relacionados');
function abrirOculto(element) {
$(element).closest('.oculto-conteudo').removeClass('mw-collapsed').show();
};
function scrollToElement(element) {
setTimeout(function(){
$(element)[0].scrollIntoView({behavior: 'smooth', block: 'start'});
}, 500);
};
function abrirAba() {
var hash = location.hash.slice(1).trim();
if (!hash) return;
var parametros = hash.split('/');
if (parametros != hash) {
abas_id = '';
abas_num = '';
aba_nome = '';
$.each(parametros, function () {
if (this.indexOf('abas_id=') === 0) {
abas_id = this.split('=')[1];
} else if (this.indexOf('abas_num=') === 0) {
abas_num = this.split('=')[1];
} else if (this.indexOf('aba_nome=') === 0) {
aba_nome = decodeURIComponent(this.split('=')[1]).replace(/_/g, ' ');
};
});
if (abas_id !== '') {
aba = $('.tabs-tabbox[id=' + abas_id + '] .tabs-label:contains(' + aba_nome + ')');
} else {
aba = $('.tabs-tabbox:has(input[name=tabs-' + abas_num + ']) .tabs-label:contains(' + aba_nome + ')');
};
$.each(aba, function () {
if ($(this).text() !== aba_nome) {
return true;
};
abrirOculto(this);
this.click();
scrollToElement(this);
return false;
});
};
if (parametros == hash) {
$(document.querySelectorAll('.oculto-conteudo :target, .tabs-content :target')).each(function () {
const $this = $(this);
const dentroOculto = $this.closest('.oculto-conteudo').length > 0;
const dentroAba = $this.closest('.tabs-content').length > 0;
if (dentroOculto) {
abrirOculto(this);
};
if (dentroAba) {
var aba = $this.closest('.tabs-content').attr('class').split('-')[3];
$this.closest('.tabs-container').siblings('[data-tabpos="'+ aba + '"]').click();
};
scrollToElement(this);
});
};
};
$document.on('click', '.tabs-tabbox .tabs-label', function() {
const $this = $(this);
const abas_id = $this.closest('div').prop('id');
const abas_num = $this.attr('for').split('-')[2];
const aba_nome = $this.text();
const hash = abas_id ? 'abas_id=' + abas_id +'/abas_num=' + abas_num + '/aba_nome=' + aba_nome : 'abas_num=' + abas_num + '/aba_nome=' + aba_nome;
history.replaceState(null, null, document.location.pathname + '#' + hash);
});
/* Fecha o box "Relacionados" */
$document.on('click', '#botao-fechar', function() {
$relacionados.hide();
checarTOCeRelacionados();
});
/* Oculta o Índice totalmente */
$document.on('click', 'input#toctogglecheckbox.toctogglecheckbox', function() {
if ($('.toc ul').is(':hidden')) {
$toc.hide();
};
checarTOCeRelacionados();
});
/* Obtém os dados da referência no fim da página e exibe como pop-up ao passar o mouse sobre o seu número*/
$document.on('mouseenter', '.reference', function() {
const $this = $(this);
const referencia_id = $this.children().eq(0).attr('href').substring(1);
const referencia_nome = $('#' + referencia_id);
const referencia_conteudo = referencia_nome.find('.reference-text').html();
const topo = ($this.offset().top - 140) + "px";
const esquerda = ($this.offset().left - 115) + "px";
$referencia_tip.html(referencia_conteudo).css({
top: topo,
left: esquerda
}).hide().dequeue().show();
});
/* Oculta o pop-up da referência ao tirar o mouse do número*/
$document.on('mouseout', '.reference', function() {
$referencia_tip.delay(1000).hide(1);
});
/* Mantém o pop-up aberto enquanto estiver com o mouse*/
$document.on('mouseover', '#referencia_tip', function() {
$referencia_tip.hide().dequeue().show();
});
/* Oculta o pop-up da referência ao tirar o mouse do pop-up*/
$document.on('mouseout', '#referencia_tip', function() {
$referencia_tip.hide();
});
/* Confere se o ìndice e o box Relacionados estão ocultos e muda a margem direita*/
function checarTOCeRelacionados() {
var tocOculto = !$toc.is(':visible') || $toc.length === 0;
var relacionadosOculto = !$relacionados.is(':visible') || $relacionados.length === 0;
if (tocOculto && relacionadosOculto) {
$mw_body.css('margin-right', '1em');
}
};
/* Exibe texto do logo DCOM e altera posição índice ao rolar tela*/
$.fn.estaVisivel = function() {
var elementTop = this.offset().top;
var elementBottom = elementTop + this.outerHeight();
var viewportTop = $window.scrollTop();
var viewportBottom = viewportTop + $window.height();
return elementBottom > viewportTop && elementTop < viewportBottom;
};
$window.on('ready resize load scroll', function () {
const estaVisivel = $mw_head.estaVisivel();
$toc.css('top', estaVisivel ? '55px' : '10px');
$('.mw-wiki-logo').css('opacity', estaVisivel ? 0 : 1);
});
$window.on('hashchange', abrirAba);
$(abrirAba);
$(checarTOCeRelacionados);
});