Я использую следующий JQuery-скрипт для создания всплывающих подсказок, проблема в том, что если подсказка приближается к краю экрана, она не переворачивается и не привязывается к краю.
(function($) {
$.fn.easyTooltip = function(options){
var defaults = { // default configuration properties
xOffset: 10,
yOffset: 25,
tooltipId: "easyTooltip",
clickRemove: false,
content: "",
useElement: ""
};
var options = $.extend(defaults, options);
var content;
var url;
this.each(function() {
var title = $(this).attr("title");
var url = $(this).attr("tooltipURL");
$(this).hover(function(e){
if (url != "" && url != undefined) {
content = '<span class="loadingimage"></span> Loading...';
tooltip(content);
$('#'+options.tooltipId).load(url, {"id":$(this).attr("value")});
} else {
content = (options.content != "") ? options.content : title;
content = (options.useElement != "") ? $("#" + options.useElement).html() : content;
$(this).attr("title","");
if (content != "" && content != undefined){
tooltip(content);
}
}
function tooltip(content) {
$("body").append("<div id='"+ options.tooltipId +"'>"+ content +"</div>");
$("#" + options.tooltipId)
.css("position","absolute")
.css("top",(e.pageY - options.yOffset) + "px")
.css("left",(e.pageX + options.xOffset) + "px")
.css("display","none")
.fadeIn("fast")
}
},
function(){
$("#" + options.tooltipId).remove();
$(this).attr("title",title);
});
$(this).mousemove(function(e){
$("#" + options.tooltipId)
.css("top",(e.pageY - options.yOffset) + "px")
.css("left",(e.pageX + options.xOffset) + "px")
});
if(options.clickRemove){
$(this).mousedown(function(e){
$("#" + options.tooltipId).remove();
$(this).attr("title",title);
});
}
});
};
}) (Jquery);