Fix tooltip shifting on long descriptions
This puts the tooltip-container under the mouse even on scrollbar shift due to long descriptions.
This commit is contained in:
parent
d5d655c10a
commit
e5d22682cb
|
|
@ -59,7 +59,7 @@ function destroyIfNotOnTooltip(){var div=document.getElementById("tooltip-contai
|
|||
function create(element){var contentElement=element.querySelector("script");if(contentElement){render(element,contentElement.innerHTML);return}
|
||||
var link=element.dataset.href;if(link){fetch(link,function(html){if(html){render(element,html)}})}}
|
||||
function fetch(url,callback){var request=new XMLHttpRequest();request.open("GET",url,!0);request.setRequestHeader("X-Requested-With","XMLHttpRequest");request.onreadystatechange=function(){if(request.readyState===XMLHttpRequest.DONE){if(request.status===200){callback(request.responseText)}}};request.send(null)}
|
||||
function render(element,html){var containerElement=document.createElement("div");containerElement.id="tooltip-container";containerElement.innerHTML=html;containerElement.addEventListener("mouseleave",onMouseLeaveContainer,!1);containerElement.addEventListener("mouseenter",mouseOnTooltip,!1);containerElement.mouseOnTooltip=!1;var elementRect=element.getBoundingClientRect();var top=elementRect.top+window.scrollY+elementRect.height;containerElement.style.top=top+"px";if(elementRect.left>(window.innerWidth-600)){var right=window.innerWidth-elementRect.right-window.scrollX;containerElement.style.right=right+"px"}else{var left=elementRect.left+window.scrollX;containerElement.style.left=left+"px"}
|
||||
function render(element,html){var containerElement=document.createElement("div");containerElement.id="tooltip-container";containerElement.innerHTML=html;containerElement.addEventListener("mouseleave",onMouseLeaveContainer,!1);containerElement.addEventListener("mouseenter",mouseOnTooltip,!1);containerElement.mouseOnTooltip=!1;var elementRect=element.getBoundingClientRect();var top=elementRect.top+window.scrollY+elementRect.height;containerElement.style.top=top-20+"px";if(elementRect.left>(window.innerWidth-600)){var right=window.innerWidth-elementRect.right-window.scrollX;containerElement.style.right=right-25+"px"}else{var left=elementRect.left+window.scrollX;containerElement.style.left=left-25+"px"}
|
||||
document.body.appendChild(containerElement);document.body.onclick=function(event){if(!containerElement.contains(event.target)){destroy()}}}
|
||||
function destroy(){var element=document.getElementById("tooltip-container");if(element){element.parentNode.removeChild(element)}}
|
||||
function exists(){return!!document.getElementById("tooltip-container")}
|
||||
|
|
|
|||
|
|
@ -63,14 +63,14 @@ KB.on('dom.ready', function() {
|
|||
|
||||
var elementRect = element.getBoundingClientRect();
|
||||
var top = elementRect.top + window.scrollY + elementRect.height;
|
||||
containerElement.style.top = top + "px";
|
||||
containerElement.style.top = top - 20 + "px";
|
||||
|
||||
if (elementRect.left > (window.innerWidth - 600)) {
|
||||
var right = window.innerWidth - elementRect.right - window.scrollX;
|
||||
containerElement.style.right = right + "px";
|
||||
containerElement.style.right = right - 25 + "px";
|
||||
} else {
|
||||
var left = elementRect.left + window.scrollX;
|
||||
containerElement.style.left = left + "px";
|
||||
containerElement.style.left = left - 25 + "px";
|
||||
}
|
||||
|
||||
document.body.appendChild(containerElement);
|
||||
|
|
|
|||
Loading…
Reference in New Issue