MediaWiki:Common.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
| Linha 1: | Linha 1: | ||
mw.loader.using('mediawiki.util', function () { | |||
const track = document.getElementById('everlightTrack'); | |||
if (!track) return; | |||
const items = track.children; | const items = track.children; | ||
const | let index = 0; | ||
let autoScroll; | |||
function scrollToIndex(i) { | |||
const item = items[i]; | |||
if (!item) return; | |||
const trackRect = track.getBoundingClientRect(); | |||
const itemRect = item.getBoundingClientRect(); | |||
const offset = | |||
item.offsetLeft - | |||
(trackRect.width / 2) + | |||
(itemRect.width / 2); | |||
track.scrollTo({ left: offset, behavior: 'smooth' }); | |||
} | |||
function next() { | |||
index = (index + 1) % items.length; | |||
scrollToIndex(index); | |||
} | |||
function prev() { | |||
index = (index - 1 + items.length) % items.length; | |||
scrollToIndex(index); | |||
} | |||
document.getElementById('everlightNext')?.addEventListener('click', () => { | |||
stopAuto(); | |||
next(); | |||
startAuto(); | |||
}); | }); | ||
document.getElementById('everlightPrev')?.addEventListener('click', () => { | |||
} | stopAuto(); | ||
prev(); | |||
startAuto(); | |||
}); | |||
function startAuto() { | |||
function | autoScroll = setInterval(next, 4000); // 4 segundos | ||
} | |||
} | |||
function | function stopAuto() { | ||
clearInterval(autoScroll); | |||
} | |||
} | |||
scrollToIndex(index); | |||
startAuto(); | |||
}); | |||
Edição das 19h18min de 16 de janeiro de 2026
mw.loader.using('mediawiki.util', function () {
const track = document.getElementById('everlightTrack');
if (!track) return;
const items = track.children;
let index = 0;
let autoScroll;
function scrollToIndex(i) {
const item = items[i];
if (!item) return;
const trackRect = track.getBoundingClientRect();
const itemRect = item.getBoundingClientRect();
const offset =
item.offsetLeft -
(trackRect.width / 2) +
(itemRect.width / 2);
track.scrollTo({ left: offset, behavior: 'smooth' });
}
function next() {
index = (index + 1) % items.length;
scrollToIndex(index);
}
function prev() {
index = (index - 1 + items.length) % items.length;
scrollToIndex(index);
}
document.getElementById('everlightNext')?.addEventListener('click', () => {
stopAuto();
next();
startAuto();
});
document.getElementById('everlightPrev')?.addEventListener('click', () => {
stopAuto();
prev();
startAuto();
});
function startAuto() {
autoScroll = setInterval(next, 4000); // 4 segundos
}
function stopAuto() {
clearInterval(autoScroll);
}
scrollToIndex(index);
startAuto();
});