Skip to content

Commit a65428e

Browse files
author
as0n
committed
Various code optimizations.
1 parent 41cc87e commit a65428e

File tree

1 file changed

+30
-40
lines changed

1 file changed

+30
-40
lines changed

particles.js

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
/* ----------------------------------------------- */
77

88
function launchParticlesJS(tag_id, params){
9+
var canvas_el = document.querySelector('#'+tag_id+' > canvas');
910

1011
/* particles.js variables with default values */
1112
pJS = {
1213
canvas: {
13-
el: document.querySelector('#'+tag_id+' > canvas'),
14-
w: document.querySelector('#'+tag_id+' > canvas').offsetWidth,
15-
h: document.querySelector('#'+tag_id+' > canvas').offsetHeight
14+
el: canvas_el,
15+
w: canvas_el.offsetWidth,
16+
h: canvas_el.offsetHeight
1617
},
1718
particles: {
1819
color: '#fff',
@@ -98,17 +99,15 @@ function launchParticlesJS(tag_id, params){
9899
pJS.particles.line_linked.color_rgb_line = hexToRgb(pJS.particles.line_linked.color);
99100

100101
/* detect retina */
101-
if(pJS.retina_detect){
102-
if(window.devicePixelRatio > 1){
103-
pJS.retina = true;
104-
pJS.canvas.w = pJS.canvas.el.offsetWidth*2;
105-
pJS.canvas.h = pJS.canvas.el.offsetHeight*2;
106-
pJS.particles.anim.speed = pJS.particles.anim.speed*2;
107-
pJS.particles.line_linked.distance = pJS.particles.line_linked.distance*2;
108-
pJS.particles.line_linked.width = pJS.particles.line_linked.width*2;
109-
pJS.interactivity.mouse.distance = pJS.interactivity.mouse.distance*2;
110-
}
111-
};
102+
if(pJS.retina_detect && window.devicePixelRatio > 1){
103+
pJS.retina = true;
104+
pJS.canvas.w = pJS.canvas.el.offsetWidth*2;
105+
pJS.canvas.h = pJS.canvas.el.offsetHeight*2;
106+
pJS.particles.anim.speed = pJS.particles.anim.speed*2;
107+
pJS.particles.line_linked.distance = pJS.particles.line_linked.distance*2;
108+
pJS.particles.line_linked.width = pJS.particles.line_linked.width*2;
109+
pJS.interactivity.mouse.distance = pJS.interactivity.mouse.distance*2;
110+
}
112111

113112

114113
/* ---------- CANVAS functions ------------ */
@@ -122,14 +121,15 @@ function launchParticlesJS(tag_id, params){
122121
pJS.canvas.el.height = pJS.canvas.h;
123122

124123
window.onresize = function(){
124+
pJS.canvas.w = pJS.canvas.el.offsetWidth;
125+
pJS.canvas.h = pJS.canvas.el.offsetHeight;
126+
125127
/* resize canvas */
126128
if(pJS.retina){
127-
pJS.canvas.w = pJS.canvas.el.offsetWidth*2;
128-
pJS.canvas.h = pJS.canvas.el.offsetHeight*2;
129-
}else{
130-
pJS.canvas.w = pJS.canvas.el.offsetWidth;
131-
pJS.canvas.h = pJS.canvas.el.offsetHeight;
129+
pJS.canvas.w *= 2;
130+
pJS.canvas.h *= 2;
132131
}
132+
133133
pJS.canvas.el.width = pJS.canvas.w;
134134
pJS.canvas.el.height = pJS.canvas.h;
135135

@@ -161,19 +161,8 @@ function launchParticlesJS(tag_id, params){
161161
this.y = Math.random() * pJS.canvas.h;
162162

163163
/* size */
164-
if(pJS.retina){
165-
if(pJS.particles.size_random){
166-
this.radius = Math.random() * pJS.particles.size * 2;
167-
}else{
168-
this.radius = pJS.particles.size * 2;
169-
}
170-
}else{
171-
if(pJS.particles.size_random){
172-
this.radius = Math.random() * pJS.particles.size * 1;
173-
}else{
174-
this.radius = pJS.particles.size * 1;
175-
}
176-
}
164+
this.radius = (pJS.particles.size_random ? Math.random() : 1) * pJS.particles.size;
165+
if (pJS.retina) this.radius *= 2;
177166

178167
/* color */
179168
this.color = color;
@@ -302,9 +291,9 @@ function launchParticlesJS(tag_id, params){
302291

303292
/* condensed particles */
304293
if(pJS.particles.line_linked.condensed_mode.enable){
305-
var dx = p1.x - p2.x;
306-
dy = p1.y - p2.y;
307-
var ax = dx/(pJS.particles.line_linked.condensed_mode.rotateX*1000),
294+
var dx = p1.x - p2.x,
295+
dy = p1.y - p2.y,
296+
ax = dx/(pJS.particles.line_linked.condensed_mode.rotateX*1000),
308297
ay = dy/(pJS.particles.line_linked.condensed_mode.rotateY*1000);
309298
// p1.vx -= ax;
310299
// p1.vy -= ay;
@@ -323,13 +312,14 @@ function launchParticlesJS(tag_id, params){
323312
}
324313

325314
detect_el.onmousemove = function(e){
315+
pJS.interactivity.mouse.pos_x = e.pageX;
316+
pJS.interactivity.mouse.pos_y = e.pageY;
317+
326318
if(pJS.retina){
327-
pJS.interactivity.mouse.pos_x = e.pageX*2;
328-
pJS.interactivity.mouse.pos_y = e.pageY*2;
329-
}else{
330-
pJS.interactivity.mouse.pos_x = e.pageX;
331-
pJS.interactivity.mouse.pos_y = e.pageY;
319+
pJS.interactivity.mouse.pos_x *= 2;
320+
pJS.interactivity.mouse.pos_y *= 2;
332321
}
322+
333323
pJS.interactivity.status = 'mousemove';
334324
}
335325
detect_el.onmouseleave = function(e){

0 commit comments

Comments
 (0)