MediaWiki:Common.js
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
/* Das folgende JavaScript wird für alle Benutzer geladen. */
$(() => {
$('img#watermark').remove();
const $watermark = $('<img></img>')
.attr('src', '/archium/Logo.svg')
.attr('id', 'watermark')
.attr('style', `
position: fixed;
top: 120px;
left: 50px;
width: 250px;
height: 250px;
opacity: .7;
filter: grayscale(1) contrast(2) drop-shadow(3px 3px 5px black);
mix-blend-mode: multiply;
`);
$('body').prepend($watermark);
});
$(() => {
const enabled = $('#enableHeroImage').length;
const action = new URLSearchParams(window.location.search).get('action')
if (!(enabled && (!action || action == 'view' ))) {
return;
}
const $container = $('#heroImg').html('');
const $img = $('<img></img>')
.attr('src', '/i/c/c1/HeroImageHauptseite.png');
$container.append($img);
$(window).on('scroll', function() {
var scrollTop = $(this).scrollTop(); // how far the user has scrolled
var fadeStart = 0; // start fading at scrollY=0
var fadeEnd = 300; // fully invisible at scrollY=300
var opacity = 1 - (scrollTop - fadeStart) / (fadeEnd - fadeStart);
opacity = Math.max(0, Math.min(1, opacity));
$('#heroImg img').css('opacity', opacity);
});
});
$(() => {
$(window).on('scroll resize', function() {
var scrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
$('.fancyimage').each(function() {
var $el = $(this);
var elTop = $el.offset().top;
var elHeight = $el.outerHeight();
var elBottom = elTop + elHeight;
// distance from top/bottom edges
var distanceTop = elBottom - scrollTop; // pixels visible from top
var distanceBottom = scrollTop + windowHeight - elTop; // pixels visible from bottom
// opacity calculation based on 10% height from edge
var threshold = 0.1 * elHeight; // 10% of element height
var visiblePx = Math.min(distanceTop, distanceBottom, elHeight); // max visible inside viewport
// linear mapping: fully visible → 1, less than threshold → 0
var opacity = (visiblePx - threshold) / (elHeight - threshold);
opacity = Math.max(0, Math.min(1, opacity));
$el.css('opacity', opacity);
});
});
$(window).trigger('scroll');
});