MediaWiki:Common.js: Difference between revisions

From Vanilla Plus
Jump to navigation Jump to search
Created page with "Any JavaScript here will be loaded for all users on every page load.: document.addEventListener("DOMContentLoaded", function () { document.querySelectorAll(".hover-image").forEach(function (element) { let imgSrc = element.getAttribute("data-image"); if (imgSrc) { let preview = document.createElement("img"); preview.src = imgSrc; preview.style.position = "absolute"; preview.style.width = "200px"; //..."
 
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
document.addEventListener("DOMContentLoaded", function () {
document.addEventListener("DOMContentLoaded", function () {
     document.querySelectorAll(".hover-image").forEach(function (element) {
     document.querySelectorAll(".image-link").forEach(link => {
         let imgSrc = element.getAttribute("data-image");
         let imgUrl = link.getAttribute("data-img");
         if (imgSrc) {
         if (imgUrl) {
             let preview = document.createElement("img");
             let previewDiv = document.createElement("div");
             preview.src = imgSrc;
             previewDiv.classList.add("image-preview");
            preview.style.position = "absolute";
             previewDiv.style.backgroundImage = `url('${imgUrl}')`;
            preview.style.width = "200px"; // Adjust as needed
             preview.style.display = "none";
            preview.style.border = "1px solid #ccc";
            preview.style.background = "white";
            preview.style.boxShadow = "0px 0px 10px rgba(0, 0, 0, 0.5)";
            document.body.appendChild(preview);


             element.addEventListener("mouseover", function (event) {
             link.parentNode.insertBefore(previewDiv, link.nextSibling);
                preview.style.display = "block";
                preview.style.left = event.pageX + 10 + "px";
                preview.style.top = event.pageY + 10 + "px";
            });


             element.addEventListener("mousemove", function (event) {
             link.addEventListener("mouseenter", () => {
                 preview.style.left = event.pageX + 10 + "px";
                 previewDiv.style.display = "block";
                preview.style.top = event.pageY + 10 + "px";
             });
             });


             element.addEventListener("mouseout", function () {
             link.addEventListener("mouseleave", () => {
                 preview.style.display = "none";
                 previewDiv.style.display = "none";
             });
             });
         }
         }
     });
     });
});
});

Latest revision as of 19:04, 13 February 2025

/* Any JavaScript here will be loaded for all users on every page load. */
document.addEventListener("DOMContentLoaded", function () {
    document.querySelectorAll(".image-link").forEach(link => {
        let imgUrl = link.getAttribute("data-img");
        if (imgUrl) {
            let previewDiv = document.createElement("div");
            previewDiv.classList.add("image-preview");
            previewDiv.style.backgroundImage = `url('${imgUrl}')`;

            link.parentNode.insertBefore(previewDiv, link.nextSibling);

            link.addEventListener("mouseenter", () => {
                previewDiv.style.display = "block";
            });

            link.addEventListener("mouseleave", () => {
                previewDiv.style.display = "none";
            });
        }
    });
});