MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 84: Line 84:
var mouseY=0;
var mouseY=0;
/* 각주 팝업창 위치 보정 DOM */
/* 각주 팝업창 위치 보정 DOM */
document.body.addEventListener(
var observer = new MutationObserver(function (mutationList) {
    'DOMNodeInserted',
    mutationList.forEach(function (mutation) {
    function (e) {
        mutation.addedNodes.forEach(function (node) {
        if (e.target.classList && e.target.classList.contains('rt-tooltip')) {
             if (node.classList && node.classList.contains('mwe-popups')) {
            requestAnimationFrame(function () {
                requestAnimationFrame(function () {
            var linkId = e.target.id.substring(3);
                    var bodyLeft = document.body.getBoundingClientRect().left;
            //var $link = document.querySelector('#'+linkId);
                    var left = parseInt(window.getComputedStyle(node).left);
            var $link = document.querySelector('sup[id="' + linkId +'"]')
                    node.style.left = left - bodyLeft + 'px';
            var linkTop = $link.getBoundingClientRect().top + window.scrollY;
                });
           
            }
                var bodyTop = document.body.getBoundingClientRect().top + window.scrollY;
         });
                var top = parseInt(window.getComputedStyle(e.target).top);
     });
               
});
                var bodyLeft = document.body.getBoundingClientRect().left;
// 감시할 대상 설정
                var left = parseInt(window.getComputedStyle(e.target).left);
observer.observe(document.body, {
               
     childList: true,
                e.target.style.left = left - bodyLeft + 'px';
    subtree: true,
                e.target.style.top = linkTop - e.target.offsetHeight - 5 + 'px';
});
             });
        }
        if (e.target.classList && e.target.classList.contains('mwe-popups')) {
            requestAnimationFrame(function () {
                var bodyLeft = document.body.getBoundingClientRect().left;
                var left = parseInt(window.getComputedStyle(e.target).left);
                e.target.style.left = left - bodyLeft + 'px';
            });
         }      
     },
     false
);
 


/* 우클릭 방지  */
/* 우클릭 방지  */