我似乎已经能够垂直实现此功能,但似乎无法使水平翻转正常工作。
$("a.tooltip").mousemove(function(e) {
//$("#tooltip")
//.css("top",(e.pageY - xOffset) + "px")
//.css("left",(e.pageX + yOffset) + "px");
var posY;
var posX;
// Flip Tooltip Vertically
if (e.pageY - $(window).scrollTop() + $('#tooltip').height() >= $(window).height() ) {
posY = $(window).height() + $(window).scrollTop() - $('#tooltip').height() - 20 ;
} else {
posY = e.pageY - 20;
}
// Flip Horizontally?
if (e.pageX - $(window).scrollLeft() + $('#tooltip').width() >= $(window).width() ) {
posX = $(window).width() + $(window).scrollTop() - $('#tooltip').width() - 20 ;
} else {
posX = e.pageX - 20;
}
$("#tooltip")
.css("top",(posY) + "px")
.css("left",(posX) + "px");
});
最佳答案
我并没有真正遵循您的代码,但这是另一个项目的片段,可能会对您有所帮助。您可以调整x,y和limitY的值,使其适合您的设计。
$('a.tooltip').mousemove(function(e) {
var x = pageX = e.pageX,
y = pageY = e.pageY,
$elem = $( '#tooltip' ),
height = $elem.outerHeight( true ),
width = $elem.outerWidth( true ),
limitY = height + 15,
maxX = $(window).width() - width,
maxY = $(window).height() - height;
if ( !isNaN(x) && !isNaN(y) ) {
x += 10;
y -= 30;
x = Math.max( 0, Math.min( maxX, x ) );
y = Math.max( 0, Math.min( maxY, y ) );
if( pageY < limitY ) {
y = limitY;
}
$elem.css({ left: x, top: y });
}
});
关于javascript - jQuery-随时查看工具提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7231050/