MediaWiki:Common.js: Difference between revisions

From MU Bless Online Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 97: Line 97:
});
});


$('.weaponsli').on('mouseenter', function() {
const isTouchDevice = 'ontouchstart' in window || /Mobi|Android|iPad|iPhone|iPod/.test(navigator.userAgent);
 
if (!isTouchDevice) {
/*$('.weaponsli').on('mouseenter', function() {
         // Показываем первый дочерний элемент (tooltip)
         // Показываем первый дочерний элемент (tooltip)
         $(this).children(':first-child').css('display', 'block');
         $(this).children(':first-child').css('display', 'block');
Line 111: Line 114:
          
          
         // Получаем размеры tooltip
         // Получаем размеры tooltip
         const tooltipWidth = tooltip.outerWidth();
         var tooltipWidth = tooltip.outerWidth();
         const tooltipHeight = tooltip.outerHeight();
         var tooltipHeight = tooltip.outerHeight();


         // Начальные координаты для расположения tooltip
         // Начальные координаты для расположения tooltip
Line 118: Line 121:
         var tooltipY = e.pageY - tooltipHeight - 10; // по умолчанию располагаем выше курсора
         var tooltipY = e.pageY - tooltipHeight - 10; // по умолчанию располагаем выше курсора


         // Получаем размеры окна
         // Получаем размеры видимой области окна (области, которую видит пользователь)
         const windowHeight = $(window).height();
         var windowHeight = $(window).height();
         const windowWidth = $(window).width();
         var windowWidth = $(window).width();
         const scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали
         var scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали
 


        // Проверяем, не выходит ли tooltip за верхнюю границу видимой области
         if (tooltipY < scrollTop) {
         if (tooltipY < scrollTop) {
             // Если tooltip выходит за верхнюю границу видимой области, перемещаем его под курсор
             // Если tooltip выходит за верхнюю границу видимой области, перемещаем его под курсор
Line 129: Line 132:
         }
         }


         // Проверяем, не выходит ли tooltip за правую границу экрана
         // Проверка, не выходит ли tooltip за правую границу экрана
         if (tooltipX + tooltipWidth > windowWidth) {
         if (tooltipX + tooltipWidth > windowWidth) {
             tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
             tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
         }
         }


         // Проверка нижней границы видимой области экрана
         // Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана
         if (tooltipY + tooltipHeight > windowHeight) {
         if (tooltipY + tooltipHeight > windowHeight + scrollTop) {
             // Если tooltip выходит за нижнюю границу, помещаем его **выше** курсора
             // Если tooltip выходит за нижнюю границу, размещаем его **выше** курсора
             tooltipY = e.pageY - tooltipHeight - 10;
             tooltipY = e.pageY - tooltipHeight - 10;
         }
         }
Line 142: Line 145:
         // Применяем новые координаты
         // Применяем новые координаты
         tooltip.css({
         tooltip.css({
             left: tooltipX + 'px',
             left: tooltipX -170 + 'px',
             top: tooltipY + 'px'
             top: tooltipY + 'px'
         });
         });
     });
     });*/


 
$('.weaponsli').on('mouseenter', function() {
/*
    $('.weaponsli').on('mouseenter', function() {
         // Показываем первый дочерний элемент (tooltip)
         // Показываем первый дочерний элемент (tooltip)
         $(this).children(':first-child').css('display', 'block');
         $(this).children(':first-child').css('display', 'block');
Line 159: Line 160:
     });
     });


        $('.weaponsli').on('mousemove', function(e) {
    $('.weaponsli').on('mousemove', function(e) {
         const tooltip = $(this).children(':first-child');
         const tooltip = $(this).children(':first-child');
          
          
         // Задаем начальные координаты со смещением от курсора
         // Получаем размеры tooltip
         var tooltipX = e.pageX + 10;
         const tooltipWidth = tooltip.outerWidth();
         var tooltipY = e.pageY + 10;
         const tooltipHeight = tooltip.outerHeight();


         // Получаем ширину и высоту окна браузера
        // Начальные координаты для расположения tooltip — по умолчанию под курсором
        var tooltipX = e.pageX + 10; // смещение вправо от курсора
        var tooltipY = e.pageY + 10; // по умолчанию располагаем ниже курсора
 
         // Получаем размеры видимой области окна (области, которую видит пользователь)
        const windowHeight = $(window).height();
         const windowWidth = $(window).width();
         const windowWidth = $(window).width();
         const windowHeight = $(window).height();
         const scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали


         // Получаем размеры самого tooltip
         // Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана
         const tooltipWidth = tooltip.outerWidth();
         if (tooltipY + tooltipHeight > windowHeight + scrollTop) {
        const tooltipHeight = tooltip.outerHeight();
            // Если нет места снизу, размещаем tooltip над курсором
            tooltipY = e.pageY - tooltipHeight - 10;
        }


         // Проверка правого края экрана
         // Проверка, не выходит ли tooltip за правую границу экрана
         if (tooltipX + tooltipWidth > windowWidth) {
         if (tooltipX + tooltipWidth > windowWidth) {
             tooltipX = e.pageX - tooltipWidth - 10;
             tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
         }
         }


        // Проверка нижнего края экрана
         // Применяем новые координаты
        if (tooltipY + tooltipHeight > windowHeight) {
            tooltipY = e.pageY - tooltipHeight - 10;
        }
 
        console.log(tooltipY);
         // Применяем безопасные координаты
         tooltip.css({
         tooltip.css({
             left: tooltipX -170 + 'px',
             left: tooltipX -170 + 'px',
             top: tooltipY +15 + 'px'
             top: tooltipY + 'px'
         });
         });
     });
     });
*/
}
 
/*$('.weaponsli').on('mouseleave', function() {
        // Скрываем tooltip, когда курсор уходит с элемента
        $(this).children(':first-child').css('display', 'none');
    });
 
    $('.weaponsli').on('mousemove', function(e) {
        // Двигаем tooltip строго под курсором
        $(this).children(':first-child').css({
            left: e.pageX -170 + 'px',
            top: e.pageY +15 + 'px'
        });
    });*/
 


$("a").removeAttr("title");
$("a").removeAttr("title");

Latest revision as of 15:21, 7 November 2024

/* Any JavaScript here will be loaded for all users on every page load. */

function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
        expires = "; expires=" + date.toUTCString(); 
    }
    document.cookie = name + "=" + (value || "") + expires + "; path=/"; 
}


// Google Analytics gtag.js tracking code
(function() {
    var gtagScript = document.createElement('script');
    gtagScript.async = true;
    gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-J726V56N70";
    document.head.appendChild(gtagScript);

    window.dataLayer = window.dataLayer || [];
    function gtag(){ dataLayer.push(arguments); }
    gtag('js', new Date());
    gtag('config', 'G-J726V56N70');
})();


//Удаление активного языка
var currlang;
const usedLanguage = $('.mw-pt-languages-selected');
    if (usedLanguage) {
        currlang = usedLanguage.attr('lang');
        const parentElement = usedLanguage.parent();
        if (parentElement) {
            parentElement.remove();
        }
}

// Смена ссылки на главную по языкам
var logoLink = document.getElementsByClassName('mw-wiki-logo')[0];
var logoLinkHref = logoLink.getAttribute('href');

// Проверяем, что элемент существует
var myVariable = localStorage.getItem("isLightTheme");

// Смена ссылки у Заглавной страницы
var mainInscr = document.getElementById("n-mainpage-description");

var userLang = mw.config.get('wgUserLanguage');
console.log(userLang);

mw.loader.using('mediawiki.util', function() {
	//document.body.style.backgroundColor = 'green';
    $(document).ready(function() {
					
            if(myVariable == "true"){
                if(userLang == 'ru'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/ru');
                 logoLink.setAttribute('href', logoLinkHref + '/ru');
                 var newTab = $('<li id="ca-custom"><a>Тёмная тема</a></li>');
                } else if(userLang == 'vi'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/vi');
                 logoLink.setAttribute('href', logoLinkHref + '/vi');
                 var newTab = $('<li id="ca-custom"><a>Chủ đề tối</a></li>');
                }
                else{
                 var newTab = $('<li id="ca-custom"><a>Dark theme</a></li>');
                } 
            } else{
                 if(userLang == 'ru'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/ru');
logoLink.setAttribute('href', logoLinkHref + '/ru');
                 var newTab = $('<li id="ca-custom"><a>Светлая тема</a></li>');
                } else if(userLang == 'vi'){
mainInscr.firstElementChild.setAttribute("href", logoLinkHref + '/vi');
logoLink.setAttribute('href', logoLinkHref + '/vi');
                 var newTab = $('<li id="ca-custom"><a>Chủ đề nhẹ nhàng</a></li>');
                }
                else{
                 var newTab = $('<li id="ca-custom"><a>Light theme</a></li>');
                }
            }
            
            // Добавляем новую вкладку после вкладки "Читать"
            $('#ca-nstab-main').after(newTab);
            $('#ca-nstab-special').after(newTab);
    });
	
});
	
$(document).ready(function(){

	//var iframes = document.querySelectorAll('.youtube-iframe');
	var iframes = document.querySelectorAll('iframe');
	Array.prototype.forEach.call(iframes, function(iframe) {
	    iframe.src = iframe.getAttribute('data-src');
	});

const isTouchDevice = 'ontouchstart' in window || /Mobi|Android|iPad|iPhone|iPod/.test(navigator.userAgent);

if (!isTouchDevice) {
/*$('.weaponsli').on('mouseenter', function() {
        // Показываем первый дочерний элемент (tooltip)
        $(this).children(':first-child').css('display', 'block');
    });

    $('.weaponsli').on('mouseleave', function() {
        // Скрываем tooltip, когда курсор уходит с элемента
        $(this).children(':first-child').css('display', 'none');
    });

    $('.weaponsli').on('mousemove', function(e) {
        const tooltip = $(this).children(':first-child');
        
        // Получаем размеры tooltip
        var tooltipWidth = tooltip.outerWidth();
        var tooltipHeight = tooltip.outerHeight();

        // Начальные координаты для расположения tooltip
        var tooltipX = e.pageX + 10; // смещение вправо от курсора
        var tooltipY = e.pageY - tooltipHeight - 10; // по умолчанию располагаем выше курсора

        // Получаем размеры видимой области окна (области, которую видит пользователь)
        var windowHeight = $(window).height();
        var windowWidth = $(window).width();
        var scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали

        // Проверяем, не выходит ли tooltip за верхнюю границу видимой области
        if (tooltipY < scrollTop) {
            // Если tooltip выходит за верхнюю границу видимой области, перемещаем его под курсор
            tooltipY = e.pageY + 10;
        }

        // Проверка, не выходит ли tooltip за правую границу экрана
        if (tooltipX + tooltipWidth > windowWidth) {
            tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
        }

        // Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана
        if (tooltipY + tooltipHeight > windowHeight + scrollTop) {
            // Если tooltip выходит за нижнюю границу, размещаем его **выше** курсора
            tooltipY = e.pageY - tooltipHeight - 10;
        }

        // Применяем новые координаты
        tooltip.css({
            left: tooltipX -170 + 'px',
            top: tooltipY + 'px'
        });
    });*/

$('.weaponsli').on('mouseenter', function() {
        // Показываем первый дочерний элемент (tooltip)
        $(this).children(':first-child').css('display', 'block');
    });

    $('.weaponsli').on('mouseleave', function() {
        // Скрываем tooltip, когда курсор уходит с элемента
        $(this).children(':first-child').css('display', 'none');
    });

    $('.weaponsli').on('mousemove', function(e) {
        const tooltip = $(this).children(':first-child');
        
        // Получаем размеры tooltip
        const tooltipWidth = tooltip.outerWidth();
        const tooltipHeight = tooltip.outerHeight();

        // Начальные координаты для расположения tooltip — по умолчанию под курсором
        var tooltipX = e.pageX + 10; // смещение вправо от курсора
        var tooltipY = e.pageY + 10; // по умолчанию располагаем ниже курсора

        // Получаем размеры видимой области окна (области, которую видит пользователь)
        const windowHeight = $(window).height();
        const windowWidth = $(window).width();
        const scrollTop = $(window).scrollTop(); // Получаем прокрутку страницы по вертикали

        // Проверка, не выходит ли tooltip за нижнюю границу видимой области экрана
        if (tooltipY + tooltipHeight > windowHeight + scrollTop) {
            // Если нет места снизу, размещаем tooltip над курсором
            tooltipY = e.pageY - tooltipHeight - 10;
        }

        // Проверка, не выходит ли tooltip за правую границу экрана
        if (tooltipX + tooltipWidth > windowWidth) {
            tooltipX = e.pageX - tooltipWidth - 10; // если не помещается, перемещаем влево
        }

        // Применяем новые координаты
        tooltip.css({
            left: tooltipX -170 + 'px',
            top: tooltipY + 'px'
        });
    });
}

$("a").removeAttr("title");

            // Сохранение переменной в localStorage
            $("#ca-custom").click(function(){
            	if(myVariable == "true"){
            	 	localStorage.setItem("isLightTheme", "false");
            	 	setCookie('isLightTheme', '0', 30);
            	 } else{
            	 	localStorage.setItem("isLightTheme", "true");
            	 	setCookie('isLightTheme', '1', 30);
            	 }
            	location.reload(true);
            });
            
});

var element1 = document.getElementsByClassName('vector-search-box-input')[0];
element1.placeholder = 'MU Bless Online Wikipedia';

var parent = document.getElementById('footer-places-about');
var firstChild = parent.firstElementChild;
firstChild.innerHTML = 'About MU Bless Online Wikipedia';

//Изменение языков на флажки
    const selectedElement = $('.mw-pt-languages-list');
    if (selectedElement.length) {

        selectedElement.children('li').each(function() {

            const anchor = $(this).find('a');
            if (anchor.length) {
                const hrefValue = anchor.attr('href');
                const langValue = anchor.attr('lang');

                var img;
                if (langValue == 'vi'){
                 img = '/images/c/cf/Vi.png';
                }
                else if(langValue == 'ru'){
                 img = '/images/f/fb/Ru.png';
                }
                else if(langValue == 'en'){
                 img = '/images/0/0a/Usa.png';
                }

                $('<a>', {
                    href: hrefValue
                }).append($('<img>', {
                    class: 'languageimg',
                    src: img, 
                    alt: langValue
                })).appendTo(selectedElement);
            }
        $(this).remove();
        });
    } else {
        console.log('Element not found');
    }