我有一个工具提示元素,当鼠标悬停在某些元素上时会显示。
我希望工具提示按预期位于正常元素之上,但是在工具提示太大并且逃离窗口的情况下,我不需要这样做。
如何才能拥有一个绝对定位且永远不会显示在视野之外的元素?
编辑:最好使用CSS ...
答案 0 :(得分:0)
遵循此处提出的想法:How to tell if a DOM element is visible in the current viewport?
我得到了:
function elementInViewport(el) {
var top = el.offsetTop;
var left = el.offsetLeft;
var width = el.offsetWidth;
var height = el.offsetHeight;
while(el.offsetParent) {
el = el.offsetParent;
top += el.offsetTop;
left += el.offsetLeft;
}
return (
top >= window.pageYOffset &&
left >= window.pageXOffset &&
(top + height) <= (window.pageYOffset + window.innerHeight) &&
(left + width) <= (window.pageXOffset + window.innerWidth)
);
}
var tooltip = $(".tooltip");
tooltip.show(); //we must make it visible in order to perform the test on the next line
if(!elementInViewport(tooltip)) {
tooltip.hide();
}