MediaWiki:Common.js: Difference between revisions
No edit summary  | 
				No edit summary  | 
				||
| (11 intermediate revisions by 2 users not shown) | |||
| Line 7: | Line 7: | ||
   logo.href = 'https://ooqa.karls.computer/Special:Random';  |    logo.href = 'https://ooqa.karls.computer/Special:Random';  | ||
});  | });  | ||
let counter = rand(1000, 10000)  | |||
| Line 13: | Line 15: | ||
   return Math.random() * (max - min) + min  |    return Math.random() * (max - min) + min  | ||
}  | }  | ||
document.querySelectorAll('  | function setRandomRotations() {  | ||
	document.querySelectorAll('ul li, figure, .vector-pinned-container, .vector-dropdown-content, .mw-logo > *, .vector-typeahead-search-container, #news').forEach( e => {  | |||
})  | 		e.style.rotate = `${ rand(-3, 3) }deg`  | ||
	})  | |||
	counter = rand(5000, 15000)  | |||
	setTimeout(() => { setRandomRotations() }, counter)  | |||
}  | |||
//Background color  | //Background color  | ||
// Function to generate a random bright color  | // Function to generate a random bright color  | ||
function getRandomBrightColor() {  | function getRandomBrightColor() {  | ||
   const min =   |    const min = 75; // Minimum value for bright colors  | ||
   const   |    const h = Math.floor(Math.random() * (220));  | ||
   const   |    const s = Math.floor(Math.random() * (100 - min) + min);  | ||
   const   |    const l = Math.floor(Math.random() * (100 - min) + min);  | ||
   return `  |    return `hsl(${h},${s}%,${l}%)`;  | ||
}  | }  | ||
| Line 42: | Line 48: | ||
     element.style.backgroundColor = getRandomBrightColor();  |      element.style.backgroundColor = getRandomBrightColor();  | ||
   });  |    });  | ||
	counter = rand(5000, 15000)  | |||
	setTimeout(() => { setBackgroundColors() }, counter)  | |||
}  | }  | ||
// Gradually change the background color for all elements  | // Gradually change the background color for all elements  | ||
function   | function changeStylesGradually() {  | ||
   setTimeout(() => { setRandomRotations() }, counter)  | |||
  setTimeout(() => { setBackgroundColors() }, counter)  | |||
}  | }  | ||
// Initialize the process  | // Initialize the process  | ||
setRandomRotations();  | |||
setBackgroundColors();  | setBackgroundColors();  | ||
changeStylesGradually();  | |||
//mouse-hover Popup for the logo  | //mouse-hover Popup for the logo  | ||
Latest revision as of 13:56, 9 October 2024
/* Any JavaScript here will be loaded for all users on every page load. */
//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';
});
let counter = rand(1000, 10000)
// add a little disorder
function rand(min = -1, max = 1) {
  return Math.random() * (max - min) + min
}
function setRandomRotations() {
	document.querySelectorAll('ul li, figure, .vector-pinned-container, .vector-dropdown-content, .mw-logo > *, .vector-typeahead-search-container, #news').forEach( e => {
		e.style.rotate = `${ rand(-3, 3) }deg`
	})
	counter = rand(5000, 15000)
	setTimeout(() => { setRandomRotations() }, counter)
}
//Background color
// Function to generate a random bright color
function getRandomBrightColor() {
  const min = 75; // Minimum value for bright colors
  const h = Math.floor(Math.random() * (220));
  const s = Math.floor(Math.random() * (100 - min) + min);
  const l = Math.floor(Math.random() * (100 - min) + min);
  return `hsl(${h},${s}%,${l}%)`;
}
// Set the initial random background color for all elements
function setBackgroundColors() {
  // Set for root variable --background-color-base (so also body)
  document.documentElement.style.setProperty('--background-color-base', getRandomBrightColor());
  // Set for .vector-pinned-container
  const pinnedContainers = document.querySelectorAll('.vector-pinned-container');
  pinnedContainers.forEach(element => {
    element.style.backgroundColor = getRandomBrightColor();
  });
  // Set for .vector-dropdown-content
  const dropdownContent = document.querySelectorAll('.vector-dropdown-content');
  dropdownContent.forEach(element => {
    element.style.backgroundColor = getRandomBrightColor();
  });
	counter = rand(5000, 15000)
	setTimeout(() => { setBackgroundColors() }, counter)
}
// Gradually change the background color for all elements
function changeStylesGradually() {
  setTimeout(() => { setRandomRotations() }, counter)
  setTimeout(() => { setBackgroundColors() }, counter)
}
// Initialize the process
setRandomRotations();
setBackgroundColors();
changeStylesGradually();
//mouse-hover Popup for the logo
// Create a new div element for the popup
let popup = document.createElement('div');
popup.id = 'popup-disclaimer';
popup.classList.add('popup');
popup.innerText = 'What we define as Home is an ever-changing site of queering, which may not be identical to where we first began.';
// Append the popup to the body
document.body.appendChild(popup);
// Select the .mw-logo element
let logo = document.querySelector('.mw-logo');
// Add event listener for mouse hover (mouseenter) to show the popup
logo.addEventListener('mouseenter', function(event) {
  // Get the mouse position and place the popup accordingly
  let x = event.pageX + 10; // Offset a bit for better placement
  let y = event.pageY + 10;
  popup.style.left = x + 'px';
  popup.style.top = y + 'px';
  
  // Show the popup
  popup.style.display = 'block';
});
// Add event listener for mouse out (mouseleave) to hide the popup
logo.addEventListener('mouseleave', function() {
  // Hide the popup
  popup.style.display = 'none';
});