Zum Inhalt springen
Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

MediaWiki:Common.js

MediaWiki-Schnittstellenseite
Weitere Optionen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* Lucid Wiki — Elemente beim Scrollen einblenden. Nur was beim Laden noch
   unterhalb des Bildschirms liegt, wird animiert; so flackert nichts. */
( function () {
	if ( !( 'IntersectionObserver' in window ) ||
		window.matchMedia( '(prefers-reduced-motion: reduce)' ).matches ) {
		return;
	}
	var selector = [
		'.lucid-card', '.lucid-link', '.lucid-era', '.lucid-timeline__item',
		'.lucid-chapter', '.lucid-verse > p', '.lucid-side', '.lucid-nation-card',
		'.lucid-quote', '.lucid-term', '.lucid-relation',
		'.lucid-era-heading', '.lucid-note'
	].join( ',' );

	mw.hook( 'wikipage.content' ).add( function ( $content ) {
		var nodes = $content[ 0 ].querySelectorAll( selector );
		var fold = window.innerHeight;
		var observer = new IntersectionObserver( function ( entries ) {
			entries.forEach( function ( entry ) {
				if ( entry.isIntersecting ) {
					entry.target.classList.add( 'is-visible' );
					observer.unobserve( entry.target );
				}
			} );
		}, { rootMargin: '0px 0px -8% 0px', threshold: 0.1 } );

		Array.prototype.forEach.call( nodes, function ( el ) {
			if ( el.getBoundingClientRect().top < fold ) {
				return;
			}
			var index = Array.prototype.indexOf.call( el.parentNode.children, el );
			el.style.transitionDelay = Math.min( index % 6, 5 ) * 80 + 'ms';
			el.classList.add( 'lucid-reveal' );
			observer.observe( el );
		} );
	} );
}() );