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 > A jQuery Plugin for Snazzy Background Particle Systems</ title >
7+ < meta name ="description " content ="particleground by jnicol. A jQuery plugin for snazzy background particle systems ">
8+ < meta name ="author " content ="jnicol ">
9+ < meta name ="robots " content ="index, follow ">
10+ <!-- Canonical URL -->
11+ < link rel ="canonical " href ="https://codehimblog.github.io/jquery-plugins/particleground-by-jnicol.html ">
12+ <!-- Favicon -->
13+ < link rel ="icon " href ="/favicon.ico " type ="image/png ">
14+ <!-- Bootstrap CSS -->
15+ < link href ="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/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 "> Particleground</ 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" : "Particleground" ,
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 "> Particleground</ h1 >
95+ < p id ="packageDescription " class ="text-muted "> A jQuery plugin for snazzy background particle systems</ 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 "> 2165</ 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 "> 0.06 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 "> 513</ 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 "> 26</ 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/jnicol/particleground/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/jnicol/particleground " 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 > IMPORTANT</ strong > This repository is no longer maintained. If anyone wants to continue work on Particleground I recommend creating your own fork. Thanks to those who contributed to this project.</ p >
180+ < hr >
181+ < h1 > Particleground</ h1 >
182+ < p > A JavaScript plugin for snazzy background particle systems. Includes an optional parallax effect controlled by the mouse on desktop devices and gyroscope on mobile devices. Works in any browser that supports HTML5 canvas.</ p >
183+ < p > < a href ="https://jnicol.github.io/particleground "> See a demo</ a > </ p >
184+ < h2 > Usage</ h2 >
185+ < pre > < code > particleground(document.getElementById('your-element');</ code > </ pre >
186+ < p > jQuery:</ p >
187+ < pre > < code > $('#your-element').particleground();</ code > </ pre >
188+ < h2 > Options</ h2 >
189+ < p > Options can be set by passing an options object to the constructor.</ p >
190+ < p > Here is an example of setting the color of the particle system dots and lines:</ p >
191+ < pre > < code > particleground(document.getElementById('your-element'), {
192+ dotColor: '#ff0000',
193+ lineColor: '#ff0000'
194+ });</ code > </ pre >
195+ < p > jQuery:</ p >
196+ < pre > < code > $('#your-element').particleground({
197+ dotColor: '#ff0000',
198+ lineColor: '#ff0000'
199+ });</ code > </ pre >
200+ < p > Here is a full list of options, and their default values:</ p >
201+ < h3 > minSpeedX</ h3 >
202+ < pre > < code > 0.1</ code > </ pre >
203+ < h3 > maxSpeedX</ h3 >
204+ < pre > < code > 0.7</ code > </ pre >
205+ < h3 > minSpeedY</ h3 >
206+ < pre > < code > 0.1</ code > </ pre >
207+ < h3 > maxSpeedY</ h3 >
208+ < pre > < code > 0.7</ code > </ pre >
209+ < h3 > directionX</ h3 >
210+ < pre > < code > 'center'</ code > </ pre >
211+ < p > Can be one of < code > 'center'</ code > , < code > 'left'</ code > or < code > 'right'</ code > . < code > 'center'</ code > means that the dots will bounce off the edges of the canvas.</ p >
212+ < h3 > directionY</ h3 >
213+ < pre > < code > 'center'</ code > </ pre >
214+ < p > Can be one of < code > 'center'</ code > , < code > 'up'</ code > or < code > 'down'</ code > . < code > 'center'</ code > means that the dots will bounce off the edges of the canvas.</ p >
215+ < h3 > density</ h3 >
216+ < pre > < code > 10000</ code > </ pre >
217+ < p > Determines how many particles will be generated: one particle every n pixels.</ p >
218+ < h3 > dotColor</ h3 >
219+ < pre > < code > '#666666'</ code > </ pre >
220+ < h3 > lineColor</ h3 >
221+ < pre > < code > '#666666'</ code > </ pre >
222+ < h3 > particleRadius</ h3 >
223+ < pre > < code > 7</ code > </ pre >
224+ < p > Dot size</ p >
225+ < h3 > lineWidth</ h3 >
226+ < pre > < code > 1</ code > </ pre >
227+ < h3 > curvedLines</ h3 >
228+ < pre > < code > false</ code > </ pre >
229+ < h3 > proximity</ h3 >
230+ < pre > < code > 100</ code > </ pre >
231+ < p > How close two dots need to be, in pixels, before they join.</ p >
232+ < h3 > parallax</ h3 >
233+ < pre > < code > true</ code > </ pre >
234+ < h3 > parallaxMultiplier</ h3 >
235+ < pre > < code > 5</ code > </ pre >
236+ < p > The lower the number, the more extreme the parallax effect wil be.</ p >
237+ < h3 > onInit</ h3 >
238+ < pre > < code > function() {}</ code > </ pre >
239+ < p > A callback executed after Particleground initializes.</ p >
240+ < h3 > onDestroy</ h3 >
241+ < pre > < code > function() {}</ code > </ pre >
242+ < p > A callback executed after Particleground is destroyed.</ p >
243+ < h2 > Methods</ h2 >
244+ < p > Particleground exposes public methods which can be used to interact with your Particleground instance e.g.</ p >
245+ < pre > < code > var pg = particleground(document.getElementById('your-element');
246+ pg.pause(); </ code > </ pre >
247+ < p > jQuery:</ p >
248+ < pre > < code > $('#your-element').particlegound('pause');</ code > </ pre >
249+ < h3 > pause()</ h3 >
250+ < p > Pauses the particle system.</ p >
251+ < h3 > start()</ h3 >
252+ < p > Restarts the particle system if you previously paused it.</ p >
253+ < h3 > destroy()</ h3 >
254+ < p > Removes the plugin from your element.</ p >
255+ < h2 > Credits</ h2 >
256+ < p > Particleground was inspired by < a href ="http://requestlab.fr/ "> http://requestlab.fr/</ a > and < a href ="http://disruptivebydesign.com/ "> http://disruptivebydesign.com/</ a > </ p >
257+ < h2 > Contributors</ h2 >
258+ < p > Horia Dragomir: Removed jQuery dependency and improved rendering performance</ p >
259+ </ div >
260+
261+ < div class ="tab-pane fade " id ="changelog " role ="tabpanel " aria-labelledby ="changelog-tab ">
262+ < ul id ="changelogList ">
263+ No changelog available.
264+ </ ul >
265+ </ div >
266+
267+ </ div >
268+
269+ < div class ="tags mb-2 mt-2 ">
270+
271+ </ div >
272+
273+ </ article >
274+
275+
276+ </ main >
277+ <!-- Sidebar -->
278+ < aside class ="col-md-4 p-0 ">
279+ < div class ="sidebar ">
280+ <!-- Owner Section -->
281+ < div class ="sidebar-item mb-4 ">
282+ < div class ="ad-unit ">
283+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
284+ crossorigin ="anonymous "> </ script >
285+ <!-- CodehimBlog Sidebar -->
286+ < ins class ="adsbygoogle "
287+ style ="display:block "
288+ data-ad-client ="ca-pub-7089100907045419 "
289+ data-ad-slot ="8929986923 "
290+ data-ad-format ="auto "
291+ data-full-width-responsive ="true "> </ ins >
292+ < script >
293+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
294+ </ script >
295+ </ div >
296+ < div class ="d-flex align-items-center ">
297+ < img src ="https://avatars.githubusercontent.com/u/1201646?v=4 " alt ="Owner Avatar " class ="rounded-circle me-2 owner-avatar ">
298+ < a href ="https://github.com/jnicol " target ="_blank " id ="ownerName " class ="sidebar-link "> jnicol</ a >
299+ </ div >
300+ </ div >
301+
302+ <!-- Metadata Section -->
303+ < div class ="sidebar-item mb-2 ">
304+ < div class ="metadata-item d-flex align-items-center ">
305+ < i class ="bi bi-calendar me-2 "> </ i >
306+ < strong > Created At:</ strong >
307+ < span id ="createdAt " class ="ms-1 "> August 17, 2014</ span >
308+ </ div >
309+ < div class ="metadata-item d-flex align-items-center mt-2 ">
310+ < i class ="bi bi-pencil-square me-2 "> </ i >
311+ < strong > Last Updated:</ strong >
312+ < span id ="updatedAt " class ="ms-1 "> November 6, 2024</ span >
313+ </ div >
314+ < div class ="metadata-item d-flex align-items-center mt-2 ">
315+ < i class ="bi bi-file-earmark-code me-2 "> </ i >
316+ < strong > Language:</ strong >
317+ < span id ="language " class ="ms-1 "> JavaScript</ span >
318+ </ div >
319+
320+ < div class ="metadata-item d-flex align-items-center mt-2 ">
321+ < i class ="bi bi-shield-check "> </ i >
322+ < strong > License:</ strong >
323+ < span id ="license " class ="ms-1 "> MIT License</ span >
324+ </ div >
325+ < a href ="# " target ="_blank " class ="btn btn-outline-dark btn-sm " id ="homepageBtn ">
326+ < i class ="bi bi-house-door me-2 "> </ i > Visit Homepage
327+ </ a >
328+
329+ </ div >
330+
331+ < div class ="sidebar-item mb-2 ">
332+ < li > No dependencies!</ li >
333+ </ div >
334+
335+ < div class ="sidebar-item ">
336+ < h5 class ="sidebar-title "> Contributors</ h5 >
337+ < ul class ="p-0 " id ="contributorsList ">
338+ < 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/1201646?v=4 " alt ="jnicol " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/jnicol " target ="_blank " class ="text-decoration-none fw-bold "> jnicol</ a > < p class ="mb-0 text-muted small "> 3 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/2412992?v=4 " alt ="JulianNorton " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/JulianNorton " target ="_blank " class ="text-decoration-none fw-bold "> JulianNorton</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > </ ul >
339+ </ ul >
340+
341+ </ div >
342+
343+ < div class ="ad-unit ">
344+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
345+ crossorigin ="anonymous "> </ script >
346+ <!-- CodehimBlog Skyscrapper -->
347+ < ins class ="adsbygoogle "
348+ style ="display:block "
349+ data-ad-client ="ca-pub-7089100907045419 "
350+ data-ad-slot ="7469565592 "
351+ data-ad-format ="auto "
352+ data-full-width-responsive ="true "> </ ins >
353+ < script >
354+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
355+ </ script >
356+ </ div >
357+
358+ </ div >
359+ </ aside >
360+ </ div >
361+ </ div >
362+ <!-- Footer -->
363+ < footer class ="bg-dark text-white text-center py-3 page-footer ">
364+ < div class ="container ">
365+ < p class ="mb-2 "> © 2024 CodehimBlog - Powered by GitHub</ p >
366+ < nav >
367+ < ul class ="list-inline mb-0 ">
368+ < li class ="list-inline-item ">
369+ < a href ="/privacy-policy.html " class ="footer-link "> Privacy Policy</ a >
370+ </ li >
371+ < li class ="list-inline-item ">
372+ < span class ="text-white "> |</ span >
373+ </ li >
374+ < li class ="list-inline-item ">
375+ < a href ="/terms-and-conditions.html " class ="footer-link "> Terms and Conditions</ a >
376+ </ li >
377+ </ ul >
378+ </ nav >
379+ </ div >
380+ </ footer >
381+ <!-- Bootstrap Bundle JS -->
382+ < script src ="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js "> </ script >
383+ < script src ="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js "> </ script >
384+ < script src ="/js/script.js "> </ script >
385+ <!-- Google tag (gtag.js) -->
386+ < script async src ="https://www.googletagmanager.com/gtag/js?id=G-FG2ZX76XGT "> </ script >
387+ < script >
388+ window . dataLayer = window . dataLayer || [ ] ;
389+ function gtag ( ) { dataLayer . push ( arguments ) ; }
390+ gtag ( 'js' , new Date ( ) ) ;
391+
392+ gtag ( 'config' , 'G-FG2ZX76XGT' ) ;
393+ </ script >
394+ </ body >
395+ </ html >
0 commit comments