MediaWiki:Timeless.js: verschil tussen versies
Uit Dreambear Saga-wiki
Geen bewerkingssamenvatting |
Geen bewerkingssamenvatting |
||
| Regel 2: | Regel 2: | ||
function Stroke() { | function Stroke() { | ||
// Voeg automatisch stroke classes toe aan h1, h2, h3 | // Voeg automatisch stroke classes toe aan h1, h2, h3 | ||
document.querySelectorAll('h1').forEach(el | document.querySelectorAll('h1').forEach(function(el) { | ||
el.classList.add('stroke', 'stroke-3'); | el.classList.add('stroke', 'stroke-3'); | ||
}); | }); | ||
document.querySelectorAll('h2').forEach(el | document.querySelectorAll('h2').forEach(function(el) { | ||
el.classList.add('stroke', 'stroke-2'); | el.classList.add('stroke', 'stroke-2'); | ||
}); | }); | ||
document.querySelectorAll('h3').forEach(el | document.querySelectorAll('h3').forEach(function(el) { | ||
el.classList.add('stroke', 'stroke-1'); | el.classList.add('stroke', 'stroke-1'); | ||
}); | }); | ||
// Verwerk alle elementen met de stroke class | // Verwerk alle elementen met de stroke class | ||
var elements = document.querySelectorAll('.stroke'); | |||
elements.forEach(function(element) { | elements.forEach(function(element) { | ||
var colorClass = Array.from(element.classList).find(function(cls) { | |||
return cls.startsWith('color-'); | |||
}); | |||
var color = colorClass ? '#' + colorClass.replace('color-', '') : 'black'; | |||
// Check voor stroke-width classes | // Check voor stroke-width classes | ||
var r = 2.5; // standaard waarde | |||
if (element.classList.contains('stroke-1')) { | if (element.classList.contains('stroke-1')) { | ||
r = 1; | r = 1; | ||
| Regel 27: | Regel 29: | ||
r = 3; | r = 3; | ||
} else { | } else { | ||
// Fallback naar radius class | // Fallback naar radius class | ||
var radiusClass = Array.from(element.classList).find(function(cls) { | |||
return cls.startsWith('radius-'); | |||
}); | |||
r = radiusClass ? parseFloat(radiusClass.replace('radius-', '')) : 2.5; | r = radiusClass ? parseFloat(radiusClass.replace('radius-', '')) : 2.5; | ||
} | } | ||
var n = Math.ceil(2 * Math.PI * r); | |||
var str = | var str = ''; | ||
for (var i = 0; i < n; i++) { | for (var i = 0; i < n; i++) { | ||
var theta = (2 * Math.PI * i) / n; | |||
str += (r * Math.cos(theta)) + | str += (r * Math.cos(theta)) + 'px ' + (r * Math.sin(theta)) + 'px 0 ' + color; | ||
if (i !== n - 1) { | |||
str += ','; | |||
} | |||
} | } | ||
| Regel 44: | Regel 51: | ||
} | } | ||
// | // MediaWiki-specifieke implementatie | ||
if (document.readyState === 'loading') { | (function() { | ||
// Functie om Stroke uit te voeren | |||
function runStroke() { | |||
if (typeof Stroke === 'function') { | |||
} else { | Stroke(); | ||
} | |||
} | |||
} | |||
// Voer uit wanneer DOM geladen is | |||
// Voor MediaWiki's dynamisch geladen content | if (document.readyState === 'loading') { | ||
mw.hook('wikipage.content').add( | document.addEventListener('DOMContentLoaded', runStroke); | ||
} else { | |||
}); | runStroke(); | ||
} | |||
// Voor MediaWiki's dynamisch geladen content | |||
if (typeof mw !== 'undefined' && mw.hook) { | |||
mw.hook('wikipage.content').add(runStroke); | |||
} | |||
})(); | |||
Versie van 4 sep 2025 12:25
/* JavaScript die hier wordt geplaatst heeft alleen invloed op gebruikers die het uiterlijk Timeless gebruiken */
function Stroke() {
// Voeg automatisch stroke classes toe aan h1, h2, h3
document.querySelectorAll('h1').forEach(function(el) {
el.classList.add('stroke', 'stroke-3');
});
document.querySelectorAll('h2').forEach(function(el) {
el.classList.add('stroke', 'stroke-2');
});
document.querySelectorAll('h3').forEach(function(el) {
el.classList.add('stroke', 'stroke-1');
});
// Verwerk alle elementen met de stroke class
var elements = document.querySelectorAll('.stroke');
elements.forEach(function(element) {
var colorClass = Array.from(element.classList).find(function(cls) {
return cls.startsWith('color-');
});
var color = colorClass ? '#' + colorClass.replace('color-', '') : 'black';
// Check voor stroke-width classes
var r = 2.5; // standaard waarde
if (element.classList.contains('stroke-1')) {
r = 1;
} else if (element.classList.contains('stroke-2')) {
r = 2;
} else if (element.classList.contains('stroke-3')) {
r = 3;
} else {
// Fallback naar radius class
var radiusClass = Array.from(element.classList).find(function(cls) {
return cls.startsWith('radius-');
});
r = radiusClass ? parseFloat(radiusClass.replace('radius-', '')) : 2.5;
}
var n = Math.ceil(2 * Math.PI * r);
var str = '';
for (var i = 0; i < n; i++) {
var theta = (2 * Math.PI * i) / n;
str += (r * Math.cos(theta)) + 'px ' + (r * Math.sin(theta)) + 'px 0 ' + color;
if (i !== n - 1) {
str += ',';
}
}
element.style.textShadow = str;
});
}
// MediaWiki-specifieke implementatie
(function() {
// Functie om Stroke uit te voeren
function runStroke() {
if (typeof Stroke === 'function') {
Stroke();
}
}
// Voer uit wanneer DOM geladen is
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', runStroke);
} else {
runStroke();
}
// Voor MediaWiki's dynamisch geladen content
if (typeof mw !== 'undefined' && mw.hook) {
mw.hook('wikipage.content').add(runStroke);
}
})();
