1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
function svgTip(opts) {
opts = opts || {};
opts.fontsize = opts.fontsize || "24px";
opts.padding = opts.padding || "2px";
// opts.bgcolor = opts.bgcolor || "#000";
opts.color = opts.color || "#fff";
// opts.opacity = opts.opacity || 0.6;
//// $.each( $('[title]', 'svg'), function(id, obj) {
// var tt = $(this).attr("title"),
//// var tt = $(this).attr("title").toLowerCase().replace(/\b\w/g, function(l){ return l.toUpperCase() }),
$.each( $('[title]', 'svg'), function(id, obj) {
var tt = ' '+$(this).attr( 'title' ).toLowerCase(); // Ajouter un espace + tout en minuscules
// pattern avec lettres accentuées (minuscules suffisent)
pattern = /[ -][a-záàâäãåçéèêëíìîïñóòôöõúùûüýÿæ]/g
tt = tt.replace(pattern, function(l) { return l.toUpperCase(); }); // lettre après un espace ou tiret : en majuscule
pattern = /[ -](La|Le|Les|Lez|Du|Des|Sur)[ -]/g
tt = tt.replace(pattern, function(l) { return l.toLowerCase(); }); // on remet en minuscule les petits mots de liaison
tt = tt.trim();
that = $("<div class='svgtip'>" + tt + "</div>");
that.css({'position': "absolute",
'top': 0,
'left': 0,
'display': "none",
'background-color': opts.bgcolor,
'color': opts.color,
'padding': opts.padding,
'font-size': opts.fontsize,
'opacity': opts.opacity,
'pointer-events' : 'none'
});
$(this).hover(function(event) {
that.css({'left': event.clientX, 'top': event.clientY + $(window).scrollTop()});
that.addClass("active");
that.slideDown(100);
}, function() {
that.slideUp(100);
that.removeClass("active");
});
$(this).on("mousemove", function(event) {
if (that.hasClass("active")) {
that.css({'left': event.clientX, 'top': event.clientY + $(window).scrollTop() - that.height()});
}
});
$('body').append(that);
});
}
new svgTip({fontsize: "20px", padding:"30px"});
function lll (msg) { $('#debug').append(msg + "<br/>");} |
Partager