« MediaWiki:Gadget-Accueil.beffroi.js » : différence entre les versions
Page de l’interface de MediaWiki
Autres actions
Sync homepage from repository (commit b06f0a0) |
Sync homepage from repository (commit 0e34c54) |
||
| Ligne 1 : | Ligne 1 : | ||
( function ( mw ) { | ( function ( mw ) { | ||
"use strict"; | |||
const accueil = mw.libs && mw.libs.wikithionvilleAccueil; | |||
if ( !accueil ) return; | |||
accueil.initBeffroiMotion = root => { | |||
const image = root.querySelector("#img-beffroi"); | |||
const section = root.querySelector("#plusdinfo"); | |||
let frame = null; | |||
if (!image || !section || accueil.reduceMotion) | |||
if ( !image || !section || accueil.reduceMotion ) | |||
return; | return; | ||
function update() { | function update() { | ||
const maxOffset = Math.max(section.offsetTop, 1); | |||
const progress = accueil.clamp(window.scrollY / maxOffset, 0, 1); | |||
const offset = ((1 - progress) * 30).toFixed(2); | |||
frame = null; | frame = null; | ||
image.style.transform = | image.style.transform = `translate3d(${offset}vw, -50%, 0)`; | ||
} | } | ||
function requestUpdate() { | function requestUpdate() { | ||
if ( frame | if (frame) return; | ||
frame = window.requestAnimationFrame( update ); | frame = window.requestAnimationFrame(update); | ||
} | } | ||
window.addEventListener( | window.addEventListener("scroll", requestUpdate, { passive: true }); | ||
window.addEventListener( | window.addEventListener("resize", requestUpdate); | ||
requestUpdate(); | requestUpdate(); | ||
}; | }; | ||
}( mediaWiki ) ); | }( mediaWiki ) ); | ||
Dernière version du 12 juin 2026 à 13:00
( function ( mw ) {
"use strict";
const accueil = mw.libs && mw.libs.wikithionvilleAccueil;
if ( !accueil ) return;
accueil.initBeffroiMotion = root => {
const image = root.querySelector("#img-beffroi");
const section = root.querySelector("#plusdinfo");
let frame = null;
if (!image || !section || accueil.reduceMotion)
return;
function update() {
const maxOffset = Math.max(section.offsetTop, 1);
const progress = accueil.clamp(window.scrollY / maxOffset, 0, 1);
const offset = ((1 - progress) * 30).toFixed(2);
frame = null;
image.style.transform = `translate3d(${offset}vw, -50%, 0)`;
}
function requestUpdate() {
if (frame) return;
frame = window.requestAnimationFrame(update);
}
window.addEventListener("scroll", requestUpdate, { passive: true });
window.addEventListener("resize", requestUpdate);
requestUpdate();
};
}( mediaWiki ) );