PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 3.2.0
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v3.2.0
4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.5 3.6.6 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.2.0 4.2.1 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.10 4.3.11 4.3.12 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.7.1 4.3.8 4.3.9 4.3.9.1 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.10 4.5.11 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.7.0
cookiebot / addons / js / jquery.tipTip.js
cookiebot / addons / js Last commit date
jquery.tipTip.js 7 years ago settings.js 6 years ago
jquery.tipTip.js
193 lines
1 /*
2 * TipTip
3 * Copyright 2010 Drew Wilson
4 * www.drewwilson.com
5 * code.drewwilson.com/entry/tiptip-jquery-plugin
6 *
7 * Version 1.3 - Updated: Mar. 23, 2010
8 *
9 * This Plug-In will create a custom tooltip to replace the default
10 * browser tooltip. It is extremely lightweight and very smart in
11 * that it detects the edges of the browser window and will make sure
12 * the tooltip stays within the current window size. As a result the
13 * tooltip will adjust itself to be displayed above, below, to the left
14 * or to the right depending on what is necessary to stay within the
15 * browser window. It is completely customizable as well via CSS.
16 *
17 * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
18 * http://www.opensource.org/licenses/mit-license.php
19 * http://www.gnu.org/licenses/gpl.html
20 */
21
22 (function($){
23 $.fn.tipTip = function(options) {
24 var defaults = {
25 activation: "hover",
26 keepAlive: false,
27 maxWidth: "200px",
28 edgeOffset: 3,
29 defaultPosition: "bottom",
30 delay: 400,
31 fadeIn: 200,
32 fadeOut: 200,
33 attribute: "title",
34 content: false, // HTML or String to fill TipTIp with
35 enter: function(){},
36 exit: function(){}
37 };
38 var opts = $.extend(defaults, options);
39
40 // Setup tip tip elements and render them to the DOM
41 if($("#tiptip_holder").length <= 0){
42 var tiptip_holder = $('<div id="tiptip_holder" style="max-width:'+ opts.maxWidth +';"></div>');
43 var tiptip_content = $('<div id="tiptip_content"></div>');
44 var tiptip_arrow = $('<div id="tiptip_arrow"></div>');
45 $("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')));
46 } else {
47 var tiptip_holder = $("#tiptip_holder");
48 var tiptip_content = $("#tiptip_content");
49 var tiptip_arrow = $("#tiptip_arrow");
50 }
51
52 return this.each(function(){
53 var org_elem = $(this);
54 if(opts.content){
55 var org_title = opts.content;
56 } else {
57 var org_title = org_elem.attr(opts.attribute);
58 }
59
60 if(org_title != ""){
61 if(!opts.content){
62 org_elem.removeAttr(opts.attribute); //remove original Attribute
63 }
64 var timeout = false;
65
66 if(opts.activation == "hover"){
67 org_elem.hover(function(){
68 active_tiptip();
69 }, function(){
70 if(!opts.keepAlive){
71 deactive_tiptip();
72 }
73 });
74 if(opts.keepAlive){
75 tiptip_holder.hover(function(){}, function(){
76 deactive_tiptip();
77 });
78 }
79 } else if(opts.activation == "focus"){
80 org_elem.focus(function(){
81 active_tiptip();
82 }).blur(function(){
83 deactive_tiptip();
84 });
85 } else if(opts.activation == "click"){
86 org_elem.click(function(){
87 active_tiptip();
88 return false;
89 }).hover(function(){},function(){
90 if(!opts.keepAlive){
91 deactive_tiptip();
92 }
93 });
94 if(opts.keepAlive){
95 tiptip_holder.hover(function(){}, function(){
96 deactive_tiptip();
97 });
98 }
99 }
100
101 function active_tiptip(){
102 opts.enter.call(this);
103 tiptip_content.html(org_title);
104 tiptip_holder.hide().removeAttr("class").css("margin","0");
105 tiptip_arrow.removeAttr("style");
106
107 var top = parseInt(org_elem.offset()['top']);
108 var left = parseInt(org_elem.offset()['left']);
109 var org_width = parseInt(org_elem.outerWidth());
110 var org_height = parseInt(org_elem.outerHeight());
111 var tip_w = tiptip_holder.outerWidth();
112 var tip_h = tiptip_holder.outerHeight();
113 var w_compare = Math.round((org_width - tip_w) / 2);
114 var h_compare = Math.round((org_height - tip_h) / 2);
115 var marg_left = Math.round(left + w_compare);
116 var marg_top = Math.round(top + org_height + opts.edgeOffset);
117 var t_class = "";
118 var arrow_top = "";
119 var arrow_left = Math.round(tip_w - 12) / 2;
120
121 if(opts.defaultPosition == "bottom"){
122 t_class = "_bottom";
123 } else if(opts.defaultPosition == "top"){
124 t_class = "_top";
125 } else if(opts.defaultPosition == "left"){
126 t_class = "_left";
127 } else if(opts.defaultPosition == "right"){
128 t_class = "_right";
129 }
130
131 var right_compare = (w_compare + left) < parseInt($(window).scrollLeft());
132 var left_compare = (tip_w + left) > parseInt($(window).width());
133
134 if((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))){
135 t_class = "_right";
136 arrow_top = Math.round(tip_h - 13) / 2;
137 arrow_left = -12;
138 marg_left = Math.round(left + org_width + opts.edgeOffset);
139 marg_top = Math.round(top + h_compare);
140 } else if((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)){
141 t_class = "_left";
142 arrow_top = Math.round(tip_h - 13) / 2;
143 arrow_left = Math.round(tip_w);
144 marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5));
145 marg_top = Math.round(top + h_compare);
146 }
147
148 var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop());
149 var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0;
150
151 if(top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)){
152 if(t_class == "_top" || t_class == "_bottom"){
153 t_class = "_top";
154 } else {
155 t_class = t_class+"_top";
156 }
157 arrow_top = tip_h;
158 marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset));
159 } else if(bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)){
160 if(t_class == "_top" || t_class == "_bottom"){
161 t_class = "_bottom";
162 } else {
163 t_class = t_class+"_bottom";
164 }
165 arrow_top = -12;
166 marg_top = Math.round(top + org_height + opts.edgeOffset);
167 }
168
169 if(t_class == "_right_top" || t_class == "_left_top"){
170 marg_top = marg_top + 5;
171 } else if(t_class == "_right_bottom" || t_class == "_left_bottom"){
172 marg_top = marg_top - 5;
173 }
174 if(t_class == "_left_top" || t_class == "_left_bottom"){
175 marg_left = marg_left + 5;
176 }
177
178 tiptip_arrow.css({"margin-left": arrow_left+"px", "margin-top": arrow_top+"px"});
179 tiptip_holder.css({"margin-left": marg_left+"px", "margin-top": marg_top+"px"}).attr("class","tip"+t_class);
180
181 if (timeout){ clearTimeout(timeout); }
182 timeout = setTimeout(function(){ tiptip_holder.stop(true,true).fadeIn(opts.fadeIn); }, opts.delay);
183 }
184
185 function deactive_tiptip(){
186 opts.exit.call(this);
187 if (timeout){ clearTimeout(timeout); }
188 tiptip_holder.fadeOut(opts.fadeOut);
189 }
190 }
191 });
192 }
193 })(jQuery);