MediaWiki:Common.js: Difference between revisions

From Future Of Mankind
No edit summary
Tag: Manual revert
No edit summary
Tag: Reverted
Line 37: Line 37:
   console.log('btnHideGerman does not exist');
   console.log('btnHideGerman does not exist');
}
}
$(document).ready(function() {
    $('.tooltip').hover(function() {
        var tooltip = $(this).find('.tooltiptext');
        var tooltipWidth = tooltip.outerWidth();
        var tooltipHeight = tooltip.outerHeight();
        var offset = $(this).offset();
        var windowWidth = $(window).width();
        var windowHeight = $(window).height();
        // Calculate the position
        var left = offset.left + ($(this).outerWidth() / 2) - (tooltipWidth / 2);
        var top = offset.top - tooltipHeight - 10; // 10px above the element
        // Adjust if the tooltip goes off-screen
        if (left < 0) {
            left = 0; // Align to the left edge
        } else if (left + tooltipWidth > windowWidth) {
            left = windowWidth - tooltipWidth; // Align to the right edge
        }
        if (top < 0) {
            top = offset.top + $(this).outerHeight() + 10; // Position below the element
        }
        tooltip.css({ top: top, left: left });
    });
});

Revision as of 07:44, 9 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() {
    $('.tooltip').hover(function() {
        var tooltip = $(this).find('.tooltiptext');
        var tooltipWidth = tooltip.outerWidth();
        var tooltipHeight = tooltip.outerHeight();
        var offset = $(this).offset();
        var windowWidth = $(window).width();
        var windowHeight = $(window).height();

        // Calculate the position
        var left = offset.left + ($(this).outerWidth() / 2) - (tooltipWidth / 2);
        var top = offset.top - tooltipHeight - 10; // 10px above the element

        // Adjust if the tooltip goes off-screen
        if (left < 0) {
            left = 0; // Align to the left edge
        } else if (left + tooltipWidth > windowWidth) {
            left = windowWidth - tooltipWidth; // Align to the right edge
        }

        if (top < 0) {
            top = offset.top + $(this).outerHeight() + 10; // Position below the element
        }

        tooltip.css({ top: top, left: left });
    });
});