MediaWiki:Common.js: Difference between revisions
From Future Of Mankind
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
| Line 42: | Line 42: | ||
$('.WD-Ausartung, .WD-Gewalt').hover(function() { | $('.WD-Ausartung, .WD-Gewalt').hover(function() { | ||
// Set the tooltip content from the data attribute | // Set the tooltip content from the data attribute | ||
const tooltipContent = '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.'; | |||
$(this).attr('data-tooltip', tooltipContent); | |||
// Create | // Create a tooltip element | ||
const tooltip = $(' | |||
').text(tooltipContent).appendTo('body'); | |||
// | // Get the position of the hovered element | ||
const offset = $(this).offset(); | |||
const elementWidth = $(this).outerWidth(); | |||
const tooltipWidth = tooltip.outerWidth(); | |||
const tooltipHeight = tooltip.outerHeight(); | |||
// | // Calculate the position for the tooltip | ||
let top = offset.top - tooltipHeight - 10; // 10px above the element | |||
let left = offset.left + (elementWidth / 2) - (tooltipWidth / 2); // Centered above the element | |||
// Adjust | // Adjust if the tooltip goes off-screen | ||
if ( | if (left < 0) { | ||
left = 10; // 10px from the left edge | |||
} else if (left + tooltipWidth > $(window).width()) { | |||
left = $(window).width() - tooltipWidth - 10; // 10px from the right edge | |||
} | } | ||
// Adjust | // Adjust if the tooltip goes off the top of the screen | ||
if ( | if (top < 0) { | ||
top = offset.top + $(this).outerHeight() + 10; // Position below the element | |||
} | } | ||
// Set the | // Set the position and show the tooltip | ||
tooltip.css({ | tooltip.css({ | ||
left: | top: top, | ||
left: left, | |||
display: 'block' | position: 'absolute', | ||
backgroundColor: '#d0dcf1', | |||
borderRadius: '6px', | |||
padding: '8px 12px', | |||
boxShadow: '0 0 8px rgba(27,27,27,0.6)', | |||
zIndex: 1000, | |||
display: 'block' | |||
}); | }); | ||
// Store the tooltip element for later removal | |||
$(this).data('tooltipElement', tooltip); | |||
}, function() { | }, function() { | ||
// Clear the tooltip content and | // Clear the tooltip content and remove the tooltip element | ||
$(this).attr('data-tooltip', ''); | $(this).attr('data-tooltip', ''); | ||
$(this). | const tooltip = $(this).data('tooltipElement'); | ||
if (tooltip) { | |||
tooltip.remove(); | |||
} | |||
}); | }); | ||
}); | }); | ||
Revision as of 08:27, 12 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).ready(function() {
$('.WD-Ausartung, .WD-Gewalt').hover(function() {
// Set the tooltip content from the data attribute
const tooltipContent = '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.';
$(this).attr('data-tooltip', tooltipContent);
// Create a tooltip element
const tooltip = $('
').text(tooltipContent).appendTo('body');
// Get the position of the hovered element
const offset = $(this).offset();
const elementWidth = $(this).outerWidth();
const tooltipWidth = tooltip.outerWidth();
const tooltipHeight = tooltip.outerHeight();
// Calculate the position for the tooltip
let top = offset.top - tooltipHeight - 10; // 10px above the element
let left = offset.left + (elementWidth / 2) - (tooltipWidth / 2); // Centered above the element
// Adjust if the tooltip goes off-screen
if (left < 0) {
left = 10; // 10px from the left edge
} else if (left + tooltipWidth > $(window).width()) {
left = $(window).width() - tooltipWidth - 10; // 10px from the right edge
}
// Adjust if the tooltip goes off the top of the screen
if (top < 0) {
top = offset.top + $(this).outerHeight() + 10; // Position below the element
}
// Set the position and show the tooltip
tooltip.css({
top: top,
left: left,
position: 'absolute',
backgroundColor: '#d0dcf1',
borderRadius: '6px',
padding: '8px 12px',
boxShadow: '0 0 8px rgba(27,27,27,0.6)',
zIndex: 1000,
display: 'block'
});
// Store the tooltip element for later removal
$(this).data('tooltipElement', tooltip);
}, function() {
// Clear the tooltip content and remove the tooltip element
$(this).attr('data-tooltip', '');
const tooltip = $(this).data('tooltipElement');
if (tooltip) {
tooltip.remove();
}
});
});