|
|
| Line 63: |
Line 63: |
| var mouseY=0; | | var mouseY=0; |
| /* 각주 팝업창 위치 보정 DOM */ | | /* 각주 팝업창 위치 보정 DOM */ |
| document.body.addEventListener('DOMNodeInserted', function (e) {
| |
| if (e.target.classList && e.target.classList.contains('rt-tooltip')) {
| |
| console.log('contains mouseover');
| |
|
| |
| //var referenceId = e.target.getAttribute('href').replace('#', '');
| |
| //var popup = document.getElementById(referenceId);
| |
| var popup = e.target;
| |
| console.log(popup);
| |
| if (popup) {
| |
| showPopupAtMousePosition(popup);
| |
| }
| |
| }
| |
| });
| |
|
| |
| document.body.addEventListener('mouseover', function (e) {
| |
| mouseX = e.clientX;
| |
| mouseY = e.clientY;
| |
| });
| |
|
| |
|
| |
| function showPopupAtMousePosition(popup) {
| |
| console.log('1', mouseX, mouseY);
| |
| 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;
| |
| }
| |
|
| |
| var bodyLeft = document.body.getBoundingClientRect().left;
| |
| var left = parseInt(window.getComputedStyle(popup).left);
| |
| console.log('2', mouseX, mouseY);
| |
| popup.style.top = mouseX + 'px';
| |
| popup.style.left = mouseY + 'px';
| |
| popup.style.display = 'block';
| |
| console.log(popup);
| |
| }
| |
|
| |
| /*
| |
| document.body.addEventListener( | | document.body.addEventListener( |
| 'DOMNodeInserted', | | 'DOMNodeInserted', |
| Line 128: |
Line 77: |
| false | | false |
| ); | | ); |
| */
| | |
|
| |
|
| /* 우클릭 방지 */ | | /* 우클릭 방지 */ |