MediaWiki:Common.js: различия между версиями

Нет описания правки
Метка: отменено
Нет описания правки
 
(не показано 10 промежуточных версий этого же участника)
Строка 33: Строка 33:
});
});


function showPopup(title) {
// Автоскролл после открытия спойлера в меню Citizen
    const popup = document.querySelector('.popup');
$(document).on('click', '.dropdown .dropbtn', function () {
    popup.innerHTML = `<div class="loading">Loading...</div>`; // можно вставить спиннер


     getPageImage(title).then(imgUrl => {
     var $dropdown = $(this).closest('.dropdown');
        popup.innerHTML = `
    var $content = $dropdown.find('.dropdown-content');
            <div class="popup-content">
                ${imgUrl ? `<img class="pageimage" src="${imgUrl}" alt="${title}">` : ''}
                <div class="popup-title">${title}</div>
            </div>
        `;
    });
}


mw.hook('ext.popups.render').add(function(popup, data) {
    // Даем CSS-анимации завершиться, если она есть
    const title = data.title;
    setTimeout(function () {
    getPageImage(title, 200).then(imgUrl => {
 
         if (imgUrl) {
        // Если блок теперь виден — скроллим к нему
             const imgElem = document.createElement('img');
         if ($content.is(':visible')) {
            imgElem.className = 'pageimage';
             var top = $dropdown.offset().top - 80; // отступ сверху (регулируется)
             imgElem.src = imgUrl;
             $('html, body').animate({ scrollTop: top }, 300);
            popup.querySelector('.mwe-popups-container').prepend(imgElem);
         }
         }
     });
 
     }, 200);
});
});