Files
security-web/app/static/js/favicon_animator.js
2025-12-10 09:10:34 +01:00

50 lines
1.4 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
// Find the existing favicon link or create one
let favicon = document.querySelector('link[rel="icon"]') || document.querySelector('link[rel="shortcut icon"]');
if (!favicon) {
console.warn('No favicon link found to animate.');
return;
}
const image = new Image();
image.crossOrigin = "anonymous";
image.src = favicon.href;
image.onload = () => {
const canvas = document.createElement('canvas');
const size = 32; // Standard favicon size
canvas.width = size;
canvas.height = size;
const ctx = canvas.getContext('2d');
let angle = 0;
// Animation loop
setInterval(() => {
// Clear canvas
ctx.clearRect(0, 0, size, size);
// Save context
ctx.save();
// Move to center, rotate, move back
ctx.translate(size / 2, size / 2);
ctx.rotate(angle * Math.PI / 180);
ctx.translate(-size / 2, -size / 2);
// Draw image
ctx.drawImage(image, 0, 0, size, size);
// Restore context
ctx.restore();
// Update favicon
favicon.href = canvas.toDataURL('image/png');
// Increment angle
angle = (angle + 10) % 360;
}, 100); // 100ms = 10fps
};
});