MediaWiki:Common.js: Difference between revisions
From Future Of Mankind
No edit summary Tags: Manual revert Reverted |
No edit summary Tag: Reverted |
||
| Line 37: | Line 37: | ||
console.log('btnHideGerman does not exist'); | console.log('btnHideGerman does not exist'); | ||
} | } | ||
document.querySelectorAll('.WD-Ausartung, .WD-Gewalt').forEach(function(element) { | |||
// Set the data-tooltip attribute using jQuery | |||
$(element).attr('data-tooltip', 'Explanation of the Plejaren language scientists, given to Billy on the 27th of August 2010: Ausartung means a very bad get-out of the control of the good human nature.'); | |||
element.addEventListener('mouseenter', function(event) { | |||
const tooltip = this.getAttribute('data-tooltip'); | |||
const tooltipElement = document.createElement('div'); | |||
tooltipElement.className = 'tooltip'; | |||
tooltipElement.innerText = tooltip; | |||
document.body.appendChild(tooltipElement); | |||
const rect = this.getBoundingClientRect(); | |||
const tooltipRect = tooltipElement.getBoundingClientRect(); | |||
// Calculate position | |||
let top = rect.top - tooltipRect.height - 10; // 10px above the hovered element | |||
let left = rect.left + (rect.width / 2) - (tooltipRect.width / 2); // Centered | |||
// Adjust if off-screen | |||
if (left < 0) { | |||
left = 10; // 10px from the left edge | |||
} else if (left + tooltipRect.width > window.innerWidth) { | |||
left = window.innerWidth - tooltipRect.width - 10; // 10px from the right edge | |||
} | |||
// Set position | |||
tooltipElement.style.top = | |||
${top}px | |||
; | |||
tooltipElement.style.left = | |||
${left}px | |||
; | |||
tooltipElement.style.opacity = 1; | |||
tooltipElement.style.visibility = 'visible'; | |||
// Remove tooltip on mouse leave | |||
this.addEventListener('mouseleave', function() { | |||
tooltipElement.remove(); | |||
}); | |||
}); | |||
}); | |||
Revision as of 07:10, 13 September 2024
/* Any JavaScript here will be loaded for all users on every page load. */
//collapsible table column test, based on: https://codepen.io/feger/pen/eDybC
$(".btnHideEnglish").click(function() {
console.log('Hiding first column of table with an id of report');
$("table#collapsible_report > tbody:last-child > tr > th:first-child, table#collapsible_report > tbody:last-child > tr > td:first-child").toggle();
$(this).text($(this).text() == "Hide English" ? "Show English" : "Hide English");
$("table#collapsible_report").css({
"width": $(this).text() == "Show English" ? "80%" : "100%"
});
});
$(".btnHideHigh-German").click(function() {
console.log('Hiding first column of table with an id of report');
$("table#collapsible_report > tbody:last-child > tr > th:last-child, table#collapsible_report > tbody:last-child > tr > td:last-child").toggle();
$(this).text($(this).text() == "Hide High German" ? "Show High German" : "Hide High German");
$("table#collapsible_report").css({
"width": $(this).text() == "Show High German" ? "80%" : "100%"
});
});
$(".btnHideGerman").click(function() {
console.log('Hiding first column of table with an id of report');
$("table#collapsible_report > tbody:last-child > tr > th:last-child, table#collapsible_report > tbody:last-child > tr > td:last-child").toggle();
$(this).text($(this).text() == "Hide German" ? "Show German" : "Hide German");
$("table#collapsible_report").css({
"width": $(this).text() == "Show German" ? "80%" : "100%"
});
});
// hide the german by default, on page load, but only if the btnHideGerman element exists on the page
if (document.getElementById("btnHideGerman")) {
console.log('btnHideGerman exists');
//$("#btnHideGerman").click();
} else {
// do stuff
console.log('btnHideGerman does not exist');
}
document.querySelectorAll('.WD-Ausartung, .WD-Gewalt').forEach(function(element) {
// Set the data-tooltip attribute using jQuery
$(element).attr('data-tooltip', 'Explanation of the Plejaren language scientists, given to Billy on the 27th of August 2010: Ausartung means a very bad get-out of the control of the good human nature.');
element.addEventListener('mouseenter', function(event) {
const tooltip = this.getAttribute('data-tooltip');
const tooltipElement = document.createElement('div');
tooltipElement.className = 'tooltip';
tooltipElement.innerText = tooltip;
document.body.appendChild(tooltipElement);
const rect = this.getBoundingClientRect();
const tooltipRect = tooltipElement.getBoundingClientRect();
// Calculate position
let top = rect.top - tooltipRect.height - 10; // 10px above the hovered element
let left = rect.left + (rect.width / 2) - (tooltipRect.width / 2); // Centered
// Adjust if off-screen
if (left < 0) {
left = 10; // 10px from the left edge
} else if (left + tooltipRect.width > window.innerWidth) {
left = window.innerWidth - tooltipRect.width - 10; // 10px from the right edge
}
// Set position
tooltipElement.style.top =
${top}px
;
tooltipElement.style.left =
${left}px
;
tooltipElement.style.opacity = 1;
tooltipElement.style.visibility = 'visible';
// Remove tooltip on mouse leave
this.addEventListener('mouseleave', function() {
tooltipElement.remove();
});
});
});