Məzmuna keç

MediaViki:Gadget-TripleTabView.js: Redaktələr arasındakı fərq

wikishia saytından
Redaktənin izahı yoxdur
Redaktənin izahı yoxdur
Teq: Geri qaytarıldı
Sətir 1: Sətir 1:
// تنظیم فونت و اندازه پیش‌فرض
function setDefaultFont() {
    const textElements = document.querySelectorAll(".resizable-text"); // متن‌های هدف با کلاس resizable-text
    textElements.forEach(function (textElement) {
        const fontFamily = window.getComputedStyle(textElement).fontFamily;
        // اعمال اندازه پیش‌فرض برای AdobeArabic-Regular
        if (fontFamily.includes("AdobeArabic-Regular")) {
            textElement.style.fontSize = "20px"; // تنظیم اندازه برای AdobeArabic-Regular
        } else {
            textElement.style.fontSize = "14px"; // تنظیم اندازه پیش‌فرض برای سایر متن‌ها
        }
    });
    // تنظیم فونت برای آی‌دی #text
    const textElement = document.querySelector("#text");
    if (textElement) {
        textElement.style.fontFamily = "'AdobeArabic-Regular', sans-serif";
        textElement.style.fontSize = "20px";
    }
}
// تغییر حالت دید در شب
function toggleDarkMode() {
    const body = document.body;
    const darkModeButton = document.getElementById("toggle-dark-mode");
    // تغییر کلاس حالت شب
    body.classList.toggle("dark-mode");
    // تغییر متن دکمه بر اساس حالت
    if (body.classList.contains("dark-mode")) {
        darkModeButton.textContent = "🌙"; // نماد ماه برای حالت شب
        localStorage.setItem("dark-mode", "enabled"); // ذخیره وضعیت در حالت شب
    } else {
        darkModeButton.textContent = "🌞"; // نماد خورشید برای حالت روز
        localStorage.setItem("dark-mode", "disabled"); // ذخیره وضعیت در حالت روز
    }
}
// مقداردهی اولیه حالت دید در شب
function initializeDarkMode() {
    const darkModeButton = document.getElementById("toggle-dark-mode");
    // بررسی وضعیت ذخیره‌شده در localStorage
    if (localStorage.getItem("dark-mode") === "enabled") {
        document.body.classList.add("dark-mode"); // اعمال کلاس dark-mode اگر فعال باشد
        darkModeButton.textContent = "🌙"; // تنظیم نماد دکمه به ماه
    } else {
        document.body.classList.remove("dark-mode"); // حذف کلاس dark-mode اگر غیرفعال باشد
        darkModeButton.textContent = "🌞"; // تنظیم نماد دکمه به خورشید
    }
    // اضافه کردن رویداد کلیک به دکمه
    darkModeButton.addEventListener("click", toggleDarkMode);
}
// مقداردهی اولیه کنترل‌های تب و فونت
function initializeTabsAndFontControls() {
function initializeTabsAndFontControls() {
     var TripleTabView = document.querySelectorAll(".tab"); // انتخاب همه تب‌ها
     var TripleTabView = document.querySelectorAll(".tab"); // انتخاب همه تب‌ها
Sətir 66: Sətir 8:
         return;
         return;
     }
     }
    // اضافه کردن لاگ‌های مخصوص برای زبان آذری
    console.log("Initializing tabs and contents for Azerbaijani language");
    console.log("Tabs found:", TripleTabView);
    console.log("Contents found:", contents);


     // تنظیم رویداد کلیک برای هر تب
     // تنظیم رویداد کلیک برای هر تب
Sətir 86: Sətir 33:


     // تنظیم تب و محتوای اولیه به عنوان active
     // تنظیم تب و محتوای اولیه به عنوان active
     TripleTabView[0].classList.add("active");
     if (TripleTabView[0]) {
     contents[0].classList.add("active");
        TripleTabView[0].classList.add("active");
     }
    if (contents[0]) {
        contents[0].classList.add("active");
    }


     // انتخاب دکمه‌های تنظیم فونت
     // انتخاب دکمه‌های تنظیم فونت
Sətir 99: Sətir 50:
         return;
         return;
     }
     }
    console.log("Font control buttons found");


     var MIN_FONT_SIZE = 10; // حداقل اندازه فونت
     var MIN_FONT_SIZE = 10; // حداقل اندازه فونت
Sətir 120: Sətir 73:
         setDefaultFont(); // بازنشانی به حالت اولیه
         setDefaultFont(); // بازنشانی به حالت اولیه
     });
     });
}
// تنظیم اندازه فونت
function adjustFontSize(delta, limit) {
    var activeContent = document.querySelector('.tab-content.active'); // پیدا کردن محتوای فعال
    if (activeContent) {
        var textElements = activeContent.querySelectorAll(".resizable-text"); // انتخاب متن‌های قابل تغییر اندازه
        textElements.forEach(function (textElement) {
            var currentSize = parseFloat(window.getComputedStyle(textElement).fontSize); // اندازه فعلی فونت
            var newSize = currentSize + delta; // محاسبه اندازه جدید
            if ((delta > 0 && newSize <= limit) || (delta < 0 && newSize >= limit)) {
                textElement.style.fontSize = newSize + "px"; // اعمال اندازه جدید
            }
        });
    }
}
}



18:03, 30 dekabr 2024 tarixinə olan versiya

function initializeTabsAndFontControls() {
    var TripleTabView = document.querySelectorAll(".tab"); // انتخاب همه تب‌ها
    var contents = document.querySelectorAll(".tab-content"); // انتخاب محتوای همه تب‌ها

    // بررسی اینکه آیا تب‌ها و محتواها وجود دارند
    if (TripleTabView.length === 0 || contents.length === 0) {
        console.warn("No tabs or tab contents found.");
        return;
    }

    // اضافه کردن لاگ‌های مخصوص برای زبان آذری
    console.log("Initializing tabs and contents for Azerbaijani language");
    console.log("Tabs found:", TripleTabView);
    console.log("Contents found:", contents);

    // تنظیم رویداد کلیک برای هر تب
    TripleTabView.forEach(function (tab) {
        tab.addEventListener("click", function () {
            TripleTabView.forEach(function (t) {
                t.classList.remove("active"); // حذف کلاس active از همه تب‌ها
            });
            contents.forEach(function (content) {
                content.classList.remove("active"); // حذف کلاس active از همه محتواها
            });

            tab.classList.add("active"); // اضافه کردن کلاس active به تب فعلی
            var targetContent = document.getElementById(tab.getAttribute("data-tab")); // پیدا کردن محتوای هدف
            if (targetContent) {
                targetContent.classList.add("active"); // اضافه کردن کلاس active به محتوای هدف
            }
        });
    });

    // تنظیم تب و محتوای اولیه به عنوان active
    if (TripleTabView[0]) {
        TripleTabView[0].classList.add("active");
    }
    if (contents[0]) {
        contents[0].classList.add("active");
    }

    // انتخاب دکمه‌های تنظیم فونت
    var increaseButton = document.getElementById("increase-font");
    var decreaseButton = document.getElementById("decrease-font");
    var resetButton = document.getElementById("reset-font");

    // بررسی وجود دکمه‌ها
    if (!increaseButton || !decreaseButton || !resetButton) {
        console.error("Font control buttons not found!");
        return;
    }

    console.log("Font control buttons found");

    var MIN_FONT_SIZE = 10; // حداقل اندازه فونت
    var MAX_FONT_SIZE = 23; // حداکثر اندازه فونت

    // تنظیم اندازه پیش‌فرض فونت
    setDefaultFont();

    // رویداد کلیک برای افزایش اندازه فونت
    increaseButton.addEventListener("click", function () {
        adjustFontSize(0.5, MAX_FONT_SIZE); // دلتا به 0.5 پیکسل
    });

    // رویداد کلیک برای کاهش اندازه فونت
    decreaseButton.addEventListener("click", function () {
        adjustFontSize(-0.5, MIN_FONT_SIZE); // دلتا به -0.5 پیکسل
    });

    // رویداد کلیک برای بازنشانی اندازه فونت
    resetButton.addEventListener("click", function () {
        setDefaultFont(); // بازنشانی به حالت اولیه
    });
}

// مشاهده تغییرات در DOM و مقداردهی اولیه
var observer = new MutationObserver(function () {
    if (
        document.getElementById("increase-font") &&
        document.getElementById("decrease-font") &&
        document.getElementById("reset-font") &&
        document.getElementById("toggle-dark-mode")
    ) {
        observer.disconnect(); // متوقف کردن مشاهده تغییرات
        initializeTabsAndFontControls(); // مقداردهی اولیه تب‌ها و کنترل‌های فونت
        initializeDarkMode(); // مقداردهی اولیه حالت شب
    }
});

observer.observe(document.body, { childList: true, subtree: true }); // مشاهده تغییرات DOM

// مقداردهی اولیه در صورت آماده بودن صفحه
if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", function () {
        setDefaultFont();
        initializeTabsAndFontControls();
        initializeDarkMode();
    });
} else {
    setDefaultFont();
    initializeTabsAndFontControls();
    initializeDarkMode();
}