More actions
No edit summary |
No edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
// Crear y agregar el botón flotante al cargar la página | // Crear y agregar el botón flotante al cargar la página | ||
| Line 40: | Line 26: | ||
backToTopButton.classList.remove("show"); | backToTopButton.classList.remove("show"); | ||
} | } | ||
}); | |||
document.addEventListener('DOMContentLoaded', function () { | |||
// Crear los elementos de la barra de lectura | |||
const progressBarContainer = document.createElement('div'); | |||
progressBarContainer.className = 'reading-progress-bar-container'; | |||
const progressBar = document.createElement('div'); | |||
progressBar.className = 'reading-progress-bar'; | |||
progressBarContainer.appendChild(progressBar); | |||
// Añadir la barra al cuerpo del documento | |||
document.body.appendChild(progressBarContainer); | |||
// Actualizar la barra en función del scroll | |||
window.addEventListener('scroll', function () { | |||
const article = document.querySelector('.mw-parser-output'); // Selector principal del contenido | |||
if (!article) return; | |||
const articleHeight = article.offsetHeight; | |||
const articleTop = article.getBoundingClientRect().top; | |||
const windowHeight = window.innerHeight; | |||
const maxScroll = articleHeight - windowHeight; | |||
const scroll = Math.min(Math.max(-articleTop, 0), maxScroll); | |||
const progress = (scroll / maxScroll) * 100; | |||
progressBar.style.width = progress + '%'; | |||
}); | |||
}); | }); | ||
Latest revision as of 20:03, 16 November 2024
/* Any JavaScript here will be loaded for all users on every page load. */
// Crear y agregar el botón flotante al cargar la página
document.addEventListener("DOMContentLoaded", function () {
const backToTopButton = document.createElement("div");
backToTopButton.id = "backToTop";
backToTopButton.textContent = "↑"; // Flecha hacia arriba
backToTopButton.onclick = scrollToTop;
document.body.appendChild(backToTopButton);
});
// Función para volver al inicio
function scrollToTop() {
window.scrollTo({
top: 0,
behavior: "smooth" // Desplazamiento suave
});
}
// Mostrar el botón al hacer scroll hacia abajo
window.addEventListener("scroll", function () {
const backToTopButton = document.getElementById("backToTop");
if (window.scrollY > 200) {
backToTopButton.classList.add("show");
} else {
backToTopButton.classList.remove("show");
}
});
document.addEventListener('DOMContentLoaded', function () {
// Crear los elementos de la barra de lectura
const progressBarContainer = document.createElement('div');
progressBarContainer.className = 'reading-progress-bar-container';
const progressBar = document.createElement('div');
progressBar.className = 'reading-progress-bar';
progressBarContainer.appendChild(progressBar);
// Añadir la barra al cuerpo del documento
document.body.appendChild(progressBarContainer);
// Actualizar la barra en función del scroll
window.addEventListener('scroll', function () {
const article = document.querySelector('.mw-parser-output'); // Selector principal del contenido
if (!article) return;
const articleHeight = article.offsetHeight;
const articleTop = article.getBoundingClientRect().top;
const windowHeight = window.innerHeight;
const maxScroll = articleHeight - windowHeight;
const scroll = Math.min(Math.max(-articleTop, 0), maxScroll);
const progress = (scroll / maxScroll) * 100;
progressBar.style.width = progress + '%';
});
});