MediaWiki:Vector.js: Difference between revisions

From Office of Queer Affairs
No edit summary
No edit summary
Line 24: Line 24:
   return `rgb(${r},${g},${b})`;
   return `rgb(${r},${g},${b})`;
}
}
// Set the initial random background color
 
// Set the initial random background color for all elements
function setInitialBackgroundColor() {
function setInitialBackgroundColor() {
   const randomColor = getRandomBrightColor();
   const randomColor = getRandomBrightColor();
   document.documentElement.style.setProperty('--background-color-base', randomColor);
  // Set for body
   document.body.style.backgroundColor = randomColor;
  // Set for .vector-pinned-container
  const pinnedContainer = document.querySelector('.vector-pinned-container');
  if (pinnedContainer) pinnedContainer.style.backgroundColor = randomColor;
  // Set for .vector-dropdown-content
  const dropdownContent = document.querySelectorAll('.vector-dropdown-content');
  dropdownContent.forEach(element => {
    element.style.backgroundColor = randomColor;
  });
}
}
// Gradually change the background color
 
// Gradually change the background color for all elements
function changeBackgroundGradually() {
function changeBackgroundGradually() {
   setInterval(() => {
   setInterval(() => {
     const randomColor = getRandomBrightColor();
     const randomColor = getRandomBrightColor();
     document.documentElement.style.setProperty('--background-color-base', randomColor);
   
    // Change for body
     document.body.style.backgroundColor = randomColor;
   
    // Change for .vector-pinned-container
    const pinnedContainer = document.querySelector('.vector-pinned-container');
    if (pinnedContainer) pinnedContainer.style.backgroundColor = randomColor;
   
    // Change for .vector-dropdown-content
    const dropdownContent = document.querySelectorAll('.vector-dropdown-content');
    dropdownContent.forEach(element => {
      element.style.backgroundColor = randomColor;
    });
   }, 5000); // Change every 5 seconds
   }, 5000); // Change every 5 seconds
}
}
// Initialize the process
// Initialize the process
setInitialBackgroundColor();
setInitialBackgroundColor();
changeBackgroundGradually();
changeBackgroundGradually();

Revision as of 10:05, 30 September 2024

/* All JavaScript here will be loaded for users of the Vector skin */

//make destination of the logo hyperlink random
let logos = document.querySelectorAll('.mw-logo');
logos.forEach(function(logo) {
  logo.href = 'https://ooqa.karls.computer/Special:Random';
});


// add a little disorder
function rand(min = -1, max = 1) {
  return Math.random() * (max - min) + min
}
document.querySelectorAll('ul li, .mw-logo > *').forEach( e => {
	e.style.rotate = `${ rand(-3, 3) }deg`
})

// Function to generate a random bright color
function getRandomBrightColor() {
  const min = 200; // Minimum value for bright colors
  const r = Math.floor(Math.random() * (255 - min) + min);
  const g = Math.floor(Math.random() * (255 - min) + min);
  const b = Math.floor(Math.random() * (255 - min) + min);
  return `rgb(${r},${g},${b})`;
}

// Set the initial random background color for all elements
function setInitialBackgroundColor() {
  const randomColor = getRandomBrightColor();
  // Set for body
  document.body.style.backgroundColor = randomColor;
  // Set for .vector-pinned-container
  const pinnedContainer = document.querySelector('.vector-pinned-container');
  if (pinnedContainer) pinnedContainer.style.backgroundColor = randomColor;
  // Set for .vector-dropdown-content
  const dropdownContent = document.querySelectorAll('.vector-dropdown-content');
  dropdownContent.forEach(element => {
    element.style.backgroundColor = randomColor;
  });
}

// Gradually change the background color for all elements
function changeBackgroundGradually() {
  setInterval(() => {
    const randomColor = getRandomBrightColor();
    
    // Change for body
    document.body.style.backgroundColor = randomColor;
    
    // Change for .vector-pinned-container
    const pinnedContainer = document.querySelector('.vector-pinned-container');
    if (pinnedContainer) pinnedContainer.style.backgroundColor = randomColor;
    
    // Change for .vector-dropdown-content
    const dropdownContent = document.querySelectorAll('.vector-dropdown-content');
    dropdownContent.forEach(element => {
      element.style.backgroundColor = randomColor;
    });
  }, 5000); // Change every 5 seconds
}

// Initialize the process
setInitialBackgroundColor();
changeBackgroundGradually();