好的,我终于有时间重新审视这个,这就是我决定的。总的来说,我对它很满意;我注意到的唯一问题是,如果您在窗口的右下角有一个带有工具提示的元素,这样工具提示就没有空间在元素和窗口边框之间显示,它会出现在顶部当焦点在元素和弹出窗口之间翻转时,元素开始闪烁。欢迎解决这个问题的提示,或对我的 JS 风格的一般评论(我以前写过很少的 JS 代码)。
JavaScript 函数:
function showInfoBox(parent_index, parent) {
var parent_id = $(this).attr('id');
var infobox_id = parent_id+"_ib";
$("body").append("<div class='infobox' id='"+infobox_id+"'><p>This is an infobox for "+parent_id+"</p></div>"); //customize here
var infobox = $("#"+infobox_id);
$(this).mousemove(function(e){
var pad = 10;
var x = Math.min(e.pageX + pad, $(window).width() - infobox.width() - pad);
var y = Math.min(e.pageY + pad, $(window).height() + $(window).scrollTop() - infobox.height() - pad);
infobox.css({
top: y + 'px',
left: x + 'px'
});
})
.hover(function(){
infobox.show();
}, function(){
infobox.hide();
});
};
在文档加载时调用的 JQuery:
$(".SELECTOR-FOR-STUFF-TO-GET-INFOBOXES").each(showInfoBox);
所需的 CSS:
.infobox { display:none; position:absolute; z-index:999; /* more CSS if you like */}