1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6
+ < title > jQuery Plugin to Add 360 Rotatable Bubble Style Tooltips</ title >
7
+ < meta name ="description " content ="grumble.js by jamescryer. jQuery plugin to add 360 rotatable bubble style tooltips ">
8
+ < meta name ="author " content ="jamescryer ">
9
+ < meta name ="robots " content ="index, follow ">
10
+ <!-- Canonical URL -->
11
+ < link rel ="canonical " href ="https://codehimblog.github.io/jquery-plugins/grumble-js-by-jamescryer.html ">
12
+ <!-- Favicon -->
13
+ < link rel ="icon " href ="/favicon.ico " type ="image/png ">
14
+ <!-- Bootstrap CSS -->
15
+ < link href ="
https://cdn.jsdelivr.net/npm/[email protected] /dist/css/bootstrap.min.css "
rel ="
stylesheet "
>
16
+ <!-- Bootstrap Icons -->
17
+ < link href ="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css " rel ="stylesheet ">
18
+ < link rel ="stylesheet " href ="/css/styles.css ">
19
+ </ head >
20
+ < body >
21
+ <!-- Navbar -->
22
+ < nav class ="navbar navbar-expand-lg navbar-dark bg-dark fixed-top ">
23
+ < div class ="container ">
24
+ < a class ="navbar-brand " href ="https://codehimblog.github.io ">
25
+ < i class ="bi bi-box-seam me-2 "> </ i > CodehimBlog
26
+ </ a >
27
+ < button class ="navbar-toggler " type ="button " data-bs-toggle ="collapse " data-bs-target ="#navbarNav " aria-controls ="navbarNav " aria-expanded ="false " aria-label ="Toggle navigation ">
28
+ < span class ="navbar-toggler-icon "> </ span >
29
+ </ button >
30
+ < div class ="collapse navbar-collapse " id ="navbarNav ">
31
+ < ul class ="navbar-nav ms-auto ">
32
+ < li class ="nav-item ">
33
+ < a class ="nav-link " href ="https://codehimblog.github.io/ "> < i class ="bi bi-house-door me-1 "> </ i > Home</ a >
34
+ </ li >
35
+ < li class ="nav-item ">
36
+ < a class ="nav-link " href ="https://codehimblog.github.io/projects/ "> < i class ="bi bi-box me-1 "> </ i > Projects</ a >
37
+ </ li >
38
+ < li class ="nav-item ">
39
+ < a class ="nav-link " href ="https://codehimblog.github.io/about.html "> < i class ="bi bi-book me-1 "> </ i > About</ a >
40
+ </ li >
41
+ < li class ="nav-item ">
42
+ < a class ="nav-link " href ="https://codehimblog.github.io/contact.html "> < i class ="bi bi-envelope me-1 "> </ i > Contact</ a >
43
+ </ li >
44
+ </ ul >
45
+ </ div >
46
+ </ div >
47
+ </ nav >
48
+
49
+ <!-- Breadcrumbs -->
50
+ < div class ="container mt-4 breadcrumbs ">
51
+ < nav aria-label ="breadcrumb ">
52
+ < ol class ="breadcrumb mb-0 ">
53
+ < li class ="breadcrumb-item "> < a href ="https://codehimblog.github.io/ "> Home</ a > </ li >
54
+ < li class ="breadcrumb-item "> < a href ="https://codehimblog.github.io/jquery-plugins/ "> jQuery Plugins</ a > </ li >
55
+ < li class ="breadcrumb-item active " aria-current ="page "> Grumble.js</ li >
56
+ </ ol >
57
+ </ nav >
58
+ </ div >
59
+
60
+ <!-- Schema Markup for Breadcrumbs -->
61
+ < script type ="application/ld+json ">
62
+ {
63
+ "@context" : "https://schema.org" ,
64
+ "@type" : "BreadcrumbList" ,
65
+ "itemListElement" : [
66
+ {
67
+ "@type" : "ListItem" ,
68
+ "position" : 1 ,
69
+ "name" : "Home" ,
70
+ "item" : "https://codehimblog.github.io/"
71
+ } ,
72
+ {
73
+ "@type" : "ListItem" ,
74
+ "position" : 2 ,
75
+ "name" : "jQuery Plugins" ,
76
+ "item" : "https://codehimblog.github.io/jquery-plugins/"
77
+ } ,
78
+ {
79
+ "@type" : "ListItem" ,
80
+ "position" : 3 ,
81
+ "name" : "Grumble.js" ,
82
+ "item" : "https://codehimblog.github.io/projects/{{packageSlug}}"
83
+ }
84
+ ]
85
+ }
86
+ </ script >
87
+ <!-- Main Content -->
88
+ < div class ="container mt-3 ">
89
+ < div class ="row ">
90
+ <!-- Main Details -->
91
+ < main class ="col-md-8 site-main p-0 ">
92
+ < article >
93
+ <!-- Project Name & Description -->
94
+ < h1 id ="packageName "> Grumble.js</ h1 >
95
+ < p id ="packageDescription " class ="text-muted "> jQuery plugin to add 360 rotatable bubble style tooltips</ p >
96
+
97
+
98
+
99
+ <!-- Statistics -->
100
+ < div class ="stat-row d-flex justify-content-around align-items-center text-center mb-2 ">
101
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
102
+ < i class ="bi bi-star-fill text-warning mb-2 "> </ i >
103
+ < div >
104
+ < span id ="stargazersCount " class ="stat-value "> 769</ span >
105
+ < p class ="stat-label mb-0 "> Stars</ p >
106
+ </ div >
107
+ </ div >
108
+
109
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
110
+ < i class ="bi bi-box-arrow-in-down mb-2 "> </ i >
111
+ < div >
112
+ < span id ="repoSize " class ="stat-value "> 4.81 MB</ span >
113
+ < p class ="stat-label mb-0 "> Size</ p >
114
+ </ div >
115
+ </ div >
116
+
117
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
118
+ < i class ="bi bi-arrow-repeat text-secondary mb-2 "> </ i >
119
+ < div >
120
+ < span id ="forksCount " class ="stat-value "> 165</ span >
121
+ < p class ="stat-label mb-0 "> Forks</ p >
122
+ </ div >
123
+ </ div >
124
+
125
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
126
+ < i class ="bi bi-exclamation-circle text-danger mb-2 "> </ i >
127
+ < div >
128
+ < span id ="openIssuesCount " class ="stat-value "> 1</ span >
129
+ < p class ="stat-label mb-0 "> Open Issues</ p >
130
+ </ div >
131
+ </ div >
132
+ </ div >
133
+
134
+
135
+ < div class ="ad-unit ad-apt ">
136
+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
137
+ crossorigin ="anonymous "> </ script >
138
+ <!-- CodehimBlog APT -->
139
+ < ins class ="adsbygoogle "
140
+ style ="display:block "
141
+ data-ad-client ="ca-pub-7089100907045419 "
142
+ data-ad-slot ="4990741913 "
143
+ data-ad-format ="auto "
144
+ data-full-width-responsive ="true "> </ ins >
145
+ < script >
146
+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
147
+ </ script >
148
+ </ div >
149
+
150
+ < div class ="row mb-4 ">
151
+ <!-- Tabs (Left) -->
152
+ < div class ="col-12 col-md-6 d-flex justify-content-start mb-3 mb-md-0 ">
153
+ < ul class ="nav nav-tabs " id ="infoTabs " role ="tablist ">
154
+ < li class ="nav-item " role ="presentation ">
155
+ < button class ="nav-link active " id ="installation-tab " data-bs-toggle ="tab " data-bs-target ="#installation " type ="button " role ="tab " aria-controls ="installation " aria-selected ="true ">
156
+ < i class ="bi bi-file-earmark-text "> </ i > Readme
157
+ </ button >
158
+ </ li >
159
+ < li class ="nav-item " role ="presentation ">
160
+ < button class ="nav-link " id ="changelog-tab " data-bs-toggle ="tab " data-bs-target ="#changelog " type ="button " role ="tab " aria-controls ="changelog " aria-selected ="false ">
161
+ < i class ="bi bi-journal-text me-2 "> </ i > Changelog
162
+ </ button >
163
+ </ li >
164
+ </ ul >
165
+ </ div >
166
+
167
+ <!-- Action Buttons (Right) -->
168
+ < div class ="col-12 col-md-6 d-flex align-items-center justify-content-end ">
169
+ < a href ="https://github.com/jamescryer/grumble.js/archive/refs/heads/master.zip " class ="btn btn-primary me-2 action-btn " id ="downloadBtn ">
170
+ < i class ="bi bi-cloud-download me-2 "> </ i > Download ZIP
171
+ </ a >
172
+ < a href ="https://github.com/jamescryer/grumble.js " target ="_blank " class ="btn btn-outline-secondary action-btn " id ="githubBtn ">
173
+ < i class ="bi bi-github me-2 "> </ i > Fork on GitHub
174
+ </ a >
175
+ </ div >
176
+ </ div >
177
+ < div class ="tab-content mt-3 " id ="infoTabsContent ">
178
+ < div class ="tab-pane fade show active " id ="installation " role ="tabpanel " aria-labelledby ="installation-tab ">
179
+ < p > < strong > Sorry, this project is no longer maintained.</ strong > </ p >
180
+ < h1 > grumble.js</ h1 >
181
+ < p > Add a bubble to any element; configure its rotation on a 360 degree axis and define its distance from the centre of the element.</ p >
182
+ < p > Bubble size adapts to contents - perfect when text is localised and size can not be determined up front.</ p >
183
+ < h2 > Examples</ h2 >
184
+ < p > < a href ="http://jamescryer.github.com/grumble.js/ "> grumble.js examples</ a > </ p >
185
+ < h2 > Author</ h2 >
186
+ < p > James Cryer / Huddle.com</ p >
187
+ < h2 > Licence</ h2 >
188
+ < p > Do what you like, just don't be an arsehole.</ p >
189
+ </ div >
190
+
191
+ < div class ="tab-pane fade " id ="changelog " role ="tabpanel " aria-labelledby ="changelog-tab ">
192
+ < ul id ="changelogList ">
193
+ No changelog available.
194
+ </ ul >
195
+ </ div >
196
+
197
+ </ div >
198
+
199
+ < div class ="tags mb-2 mt-2 ">
200
+
201
+ </ div >
202
+
203
+ </ article >
204
+
205
+
206
+ </ main >
207
+ <!-- Sidebar -->
208
+ < aside class ="col-md-4 p-0 ">
209
+ < div class ="sidebar ">
210
+ <!-- Owner Section -->
211
+ < div class ="sidebar-item mb-4 ">
212
+ < div class ="ad-unit ">
213
+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
214
+ crossorigin ="anonymous "> </ script >
215
+ <!-- CodehimBlog Sidebar -->
216
+ < ins class ="adsbygoogle "
217
+ style ="display:block "
218
+ data-ad-client ="ca-pub-7089100907045419 "
219
+ data-ad-slot ="8929986923 "
220
+ data-ad-format ="auto "
221
+ data-full-width-responsive ="true "> </ ins >
222
+ < script >
223
+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
224
+ </ script >
225
+ </ div >
226
+ < div class ="d-flex align-items-center ">
227
+ < img src ="https://avatars.githubusercontent.com/u/366068?v=4 " alt ="Owner Avatar " class ="rounded-circle me-2 owner-avatar ">
228
+ < a href ="https://github.com/jamescryer " target ="_blank " id ="ownerName " class ="sidebar-link "> jamescryer</ a >
229
+ </ div >
230
+ </ div >
231
+
232
+ <!-- Metadata Section -->
233
+ < div class ="sidebar-item mb-2 ">
234
+ < div class ="metadata-item d-flex align-items-center ">
235
+ < i class ="bi bi-calendar me-2 "> </ i >
236
+ < strong > Created At:</ strong >
237
+ < span id ="createdAt " class ="ms-1 "> July 13, 2011</ span >
238
+ </ div >
239
+ < div class ="metadata-item d-flex align-items-center mt-2 ">
240
+ < i class ="bi bi-pencil-square me-2 "> </ i >
241
+ < strong > Last Updated:</ strong >
242
+ < span id ="updatedAt " class ="ms-1 "> July 8, 2024</ span >
243
+ </ div >
244
+ < div class ="metadata-item d-flex align-items-center mt-2 ">
245
+ < i class ="bi bi-file-earmark-code me-2 "> </ i >
246
+ < strong > Language:</ strong >
247
+ < span id ="language " class ="ms-1 "> JavaScript</ span >
248
+ </ div >
249
+
250
+ < div class ="metadata-item d-flex align-items-center mt-2 ">
251
+ < i class ="bi bi-shield-check "> </ i >
252
+ < strong > License:</ strong >
253
+ < span id ="license " class ="ms-1 "> Unknown</ span >
254
+ </ div >
255
+ < a href ="http://jamescryer.github.com/grumble.js/ " target ="_blank " class ="btn btn-outline-dark btn-sm " id ="homepageBtn ">
256
+ < i class ="bi bi-house-door me-2 "> </ i > Visit Homepage
257
+ </ a >
258
+
259
+ </ div >
260
+
261
+ < div class ="sidebar-item mb-2 ">
262
+ < li > No dependencies!</ li >
263
+ </ div >
264
+
265
+ < div class ="sidebar-item ">
266
+ < h5 class ="sidebar-title "> Contributors</ h5 >
267
+ < ul class ="p-0 " id ="contributorsList ">
268
+ < ul class ="list-group list-group-flush " id ="contributorsList "> < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/736104?v=4 " alt ="laurentdebricon " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/laurentdebricon " target ="_blank " class ="text-decoration-none fw-bold "> laurentdebricon</ a > < p class ="mb-0 text-muted small "> 4 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/383817?v=4 " alt ="mkoryak " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/mkoryak " target ="_blank " class ="text-decoration-none fw-bold "> mkoryak</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/1849585?v=4 " alt ="cissa " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/cissa " target ="_blank " class ="text-decoration-none fw-bold "> cissa</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > </ ul >
269
+ </ ul >
270
+
271
+ </ div >
272
+
273
+ < div class ="ad-unit ">
274
+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
275
+ crossorigin ="anonymous "> </ script >
276
+ <!-- CodehimBlog Skyscrapper -->
277
+ < ins class ="adsbygoogle "
278
+ style ="display:block "
279
+ data-ad-client ="ca-pub-7089100907045419 "
280
+ data-ad-slot ="7469565592 "
281
+ data-ad-format ="auto "
282
+ data-full-width-responsive ="true "> </ ins >
283
+ < script >
284
+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
285
+ </ script >
286
+ </ div >
287
+
288
+ </ div >
289
+ </ aside >
290
+ </ div >
291
+ </ div >
292
+ <!-- Footer -->
293
+ < footer class ="bg-dark text-white text-center py-3 page-footer ">
294
+ < div class ="container ">
295
+ < p class ="mb-2 "> © 2024 CodehimBlog - Powered by GitHub</ p >
296
+ < nav >
297
+ < ul class ="list-inline mb-0 ">
298
+ < li class ="list-inline-item ">
299
+ < a href ="/privacy-policy.html " class ="footer-link "> Privacy Policy</ a >
300
+ </ li >
301
+ < li class ="list-inline-item ">
302
+ < span class ="text-white "> |</ span >
303
+ </ li >
304
+ < li class ="list-inline-item ">
305
+ < a href ="/terms-and-conditions.html " class ="footer-link "> Terms and Conditions</ a >
306
+ </ li >
307
+ </ ul >
308
+ </ nav >
309
+ </ div >
310
+ </ footer >
311
+ <!-- Bootstrap Bundle JS -->
312
+ < script src ="
https://cdn.jsdelivr.net/npm/[email protected] /dist/js/bootstrap.bundle.min.js "
> </ script >
313
+ < script src ="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js "> </ script >
314
+ < script src ="/js/script.js "> </ script >
315
+ <!-- Google tag (gtag.js) -->
316
+ < script async src ="https://www.googletagmanager.com/gtag/js?id=G-FG2ZX76XGT "> </ script >
317
+ < script >
318
+ window . dataLayer = window . dataLayer || [ ] ;
319
+ function gtag ( ) { dataLayer . push ( arguments ) ; }
320
+ gtag ( 'js' , new Date ( ) ) ;
321
+
322
+ gtag ( 'config' , 'G-FG2ZX76XGT' ) ;
323
+ </ script >
324
+ </ body >
325
+ </ html >
0 commit comments