Przejdź do zawartości

MediaWiki:Common.js: Różnice pomiędzy wersjami

Z Horyzont Zdarzeń
Nie podano opisu zmian
Znacznik: Wycofane
Anulowanie wersji 1971 autorstwa Lockey (dyskusja)
Znacznik: Anulowanie edycji
 
(Nie pokazano 3 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
// === Przycisk "Wróć na górę" z SVG ===
// === Nowy przycisk "Wróć na górę" z SVG ===
$(document).ready(function () {
const scrollButton = document.createElement("button");
     if (document.getElementById("scrollTopBtn")) return;
scrollButton.id = "scrollTopBtn";
scrollButton.title = "Wróć na górę";
scrollButton.innerHTML = `
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="#1a1a1a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up">
     <line x1="12" y1="19" x2="12" y2="5"></line>
    <polyline points="5 12 12 5 19 12"></polyline>
</svg>
`;
document.body.appendChild(scrollButton);


     const scrollButton = document.createElement("button");
// Pokaż/ukryj w zależności od scrolla
     scrollButton.id = "scrollTopBtn";
window.onscroll = function() {
    scrollButton.title = "Wróć na górę";
     const btn = document.getElementById("scrollTopBtn");
    scrollButton.innerHTML = `
     if (document.body.scrollTop > 300 || document.documentElement.scrollTop > 300) {
         <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="#1a1a1a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        btn.style.display = "flex";
            <line x1="12" y1="19" x2="12" y2="5"></line>
        btn.style.alignItems = "center";
            <polyline points="5 12 12 5 19 12"></polyline>
         btn.style.justifyContent = "center";
        </svg>
    } else {
     `;
        btn.style.display = "none";
    document.body.appendChild(scrollButton);
     }
};


    // Scroll to top
// Akcja kliknięcia
    scrollButton.addEventListener("click", () => {
scrollButton.onclick = function() {
        window.scrollTo({ top: 0, behavior: 'smooth' });
    window.scrollTo({ top: 0, behavior: 'smooth' });
     });
};
 
$(document).ready(function() {
     var scrollBtn = document.getElementById("scrollTopBtn");


    // Scroll behavior
     window.addEventListener("scroll", function() {
     window.addEventListener("scroll", () => {
         var footerHeight = document.querySelector(".mw-footer") ? document.querySelector(".mw-footer").offsetHeight : 0;
         const btn = document.getElementById("scrollTopBtn");
         var windowHeight = window.innerHeight;
        const footer = document.querySelector(".mw-footer");
         var bodyHeight = document.body.scrollHeight;
        const footerHeight = footer ? footer.offsetHeight : 0;
         var scrollY = window.scrollY;
         const windowHeight = window.innerHeight;
         const bodyHeight = document.body.scrollHeight;
         const scrollY = window.pageYOffset || document.documentElement.scrollTop;


         // Widoczność
         // Czy jesteśmy blisko stopki?
         btn.style.display = scrollY > 300 ? "flex" : "none";
         if (scrollY + windowHeight > bodyHeight - footerHeight) {
            scrollBtn.style.bottom = (footerHeight + 20) + "px"; // przesuń w górę
        } else {
            scrollBtn.style.bottom = "100px"; // normalnie
        }
    });


        // Oblicz dolne przesunięcie (nie bliżej niż 40px od dołu)
    // Pokaż przycisk po scrollu
         const overlap = scrollY + windowHeight - (bodyHeight - footerHeight);
    window.addEventListener("scroll", function() {
        const calculatedBottom = overlap > 0 ? Math.max(40, overlap + 20) : 40;
         if (document.documentElement.scrollTop > 200) {
         btn.style.bottom = `${calculatedBottom}px`;
            scrollBtn.style.display = "block";
     }, { passive: true });
         } else {
            scrollBtn.style.display = "none";
        }
     });
});
});

Aktualna wersja na dzień 21:36, 4 maj 2025

// === Nowy przycisk "Wróć na górę" z SVG ===
const scrollButton = document.createElement("button");
scrollButton.id = "scrollTopBtn";
scrollButton.title = "Wróć na górę";
scrollButton.innerHTML = `
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="#1a1a1a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up">
    <line x1="12" y1="19" x2="12" y2="5"></line>
    <polyline points="5 12 12 5 19 12"></polyline>
</svg>
`;
document.body.appendChild(scrollButton);

// Pokaż/ukryj w zależności od scrolla
window.onscroll = function() {
    const btn = document.getElementById("scrollTopBtn");
    if (document.body.scrollTop > 300 || document.documentElement.scrollTop > 300) {
        btn.style.display = "flex";
        btn.style.alignItems = "center";
        btn.style.justifyContent = "center";
    } else {
        btn.style.display = "none";
    }
};

// Akcja kliknięcia
scrollButton.onclick = function() {
    window.scrollTo({ top: 0, behavior: 'smooth' });
};

$(document).ready(function() {
    var scrollBtn = document.getElementById("scrollTopBtn");

    window.addEventListener("scroll", function() {
        var footerHeight = document.querySelector(".mw-footer") ? document.querySelector(".mw-footer").offsetHeight : 0;
        var windowHeight = window.innerHeight;
        var bodyHeight = document.body.scrollHeight;
        var scrollY = window.scrollY;

        // Czy jesteśmy blisko stopki?
        if (scrollY + windowHeight > bodyHeight - footerHeight) {
            scrollBtn.style.bottom = (footerHeight + 20) + "px"; // przesuń w górę
        } else {
            scrollBtn.style.bottom = "100px"; // normalnie
        }
    });

    // Pokaż przycisk po scrollu
    window.addEventListener("scroll", function() {
        if (document.documentElement.scrollTop > 200) {
            scrollBtn.style.display = "block";
        } else {
            scrollBtn.style.display = "none";
        }
    });
});