MediaWiki:Common.js: Difference between revisions
No edit summary |
No edit summary |
||
| Line 62: | Line 62: | ||
/* 각주 팝업창 위치 보정 DOM */ | /* 각주 팝업창 위치 보정 DOM */ | ||
document.body.addEventListener('mouseover', function (e) { | |||
if (e.target.classList && e.target.classList.contains('rt-tooltip')) { | |||
var referenceId = e.target.getAttribute('href').replace('#', ''); | |||
var popup = document.getElementById(referenceId); | |||
if (popup) { | |||
showPopupAtMousePosition(e.clientX, e.clientY, popup); | |||
} | |||
} | |||
}); | |||
document.body.addEventListener('mouseout', function (e) { | |||
if (e.target.classList && e.target.classList.contains('rt-tooltip')) { | |||
var referenceId = e.target.getAttribute('href').replace('#', ''); | |||
var popup = document.getElementById(referenceId); | |||
if (popup) { | |||
popup.style.display = 'none'; | |||
} | |||
} | |||
}); | |||
function showPopupAtMousePosition(mouseX, mouseY, popup) { | |||
var windowHeight = window.innerHeight; | |||
var windowWidth = window.innerWidth; | |||
var popupHeight = popup.clientHeight; | |||
var popupWidth = popup.clientWidth; | |||
var popupTop = mouseY + 20; | |||
var popupLeft = mouseX + 20; | |||
// 팝업이 브라우저 창 아래쪽으로 벗어나는 경우 | |||
if ((popupTop + popupHeight) > windowHeight) { | |||
popupTop = windowHeight - popupHeight - 20; | |||
} | |||
// 팝업이 브라우저 창 오른쪽으로 벗어나는 경우 | |||
if ((popupLeft + popupWidth) > windowWidth) { | |||
popupLeft = windowWidth - popupWidth - 20; | |||
} | |||
popup.style.top = popupTop + 'px'; | |||
popup.style.left = popupLeft + 'px'; | |||
popup.style.display = 'block'; | |||
} | |||
/* | |||
document.body.addEventListener( | document.body.addEventListener( | ||
'DOMNodeInserted', | 'DOMNodeInserted', | ||
| Line 76: | Line 122: | ||
false | false | ||
); | ); | ||
*/ | |||
/* 우클릭 방지 */ | /* 우클릭 방지 */ | ||