-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery.ecTooltip.js
50 lines (43 loc) · 1.47 KB
/
jquery.ecTooltip.js
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
(function ($) {
$.fn.ecTooltip = function (options) {
var opts = $.extend({
tooltipMarkup: '<div class="ec-tooltip-container" style="position: absolute; display: none;"></div>',
containingElement: 'body',
offsetY: -5,
offsetX: 20,
fade: false,
fadeTimer: 0,
}, options);
var element = $(this);
var tooltip = $(opts.tooltipMarkup);
$(opts.containingElement).append(tooltip);
function enter (evt, text) {
tooltip.text(text);
tooltip.show();
tooltip.css({ top: evt.pageY + opts.offsetY, left: evt.pageX + opts.offsetX });
}
function move (evt) {
tooltip.show();
tooltip.css({ top: evt.pageY + opts.offsetY, left: evt.pageX + opts.offsetX });
}
function leave() {
if (opts.fade) {
return tooltip.fadeOut(opts.fadeTimer);
}
return tooltip.css({ display: 'none' });
}
element.each(function (idx, el) {
var el = $(el),
text = el.data('ec-text') || element.text();
el.on('mouseenter', function (evt) {
return enter(evt, text);
});
el.on('mousemove', function (evt) {
return move(evt);
});
el.on('mouseleave', function () {
return leave();
});
});
}
}(jQuery));