Skip to content

Commit bc5a26a

Browse files
author
Alexandre Rieux
committed
Improve merge from parameters
1 parent 80239f6 commit bc5a26a

File tree

1 file changed

+14
-69
lines changed

1 file changed

+14
-69
lines changed

particles.js

Lines changed: 14 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -83,77 +83,22 @@ function launchParticlesJS(tag_id, params){
8383
}
8484
};
8585

86-
/* params settings */
87-
if(params){
88-
if(params.particles){
89-
var paramsForParticles = params.particles;
90-
if(paramsForParticles.color) pJS.particles.color = paramsForParticles.color;
91-
if(paramsForParticles.color_random) pJS.particles.color_random = paramsForParticles.color_random;
92-
if(paramsForParticles.shape) pJS.particles.shape = paramsForParticles.shape;
93-
if(paramsForParticles.opacity) {
94-
var paramsForOpacity = paramsForParticles.opacity;
95-
if(typeof paramsForOpacity == 'object') pJS.particles.opacity.opacity = paramsForOpacity.opacity;
96-
else pJS.particles.opacity.opacity = paramsForOpacity;
97-
if(paramsForOpacity.anim){
98-
var paramsForOpacityAnim = paramsForOpacity.anim;
99-
if(paramsForOpacityAnim.enable == false || paramsForOpacityAnim.enable) pJS.particles.opacity.anim.enable = paramsForOpacityAnim.enable;
100-
if(paramsForOpacityAnim.speed) pJS.particles.opacity.anim.speed = paramsForOpacityAnim.speed;
101-
if(paramsForOpacityAnim.opacity_min) pJS.particles.opacity.anim.opacity_min = paramsForOpacityAnim.opacity_min;
102-
if(paramsForOpacityAnim.sync == false || paramsForOpacityAnim.sync) pJS.particles.opacity.anim.sync = paramsForOpacityAnim.sync;
103-
}
104-
}
105-
if(paramsForParticles.size) pJS.particles.size = paramsForParticles.size;
106-
if(paramsForParticles.size_random == false) pJS.particles.size_random = paramsForParticles.size_random;
107-
if(paramsForParticles.nb) pJS.particles.nb = paramsForParticles.nb;
108-
if(paramsForParticles.line_linked){
109-
var paramsForLineLinked = paramsForParticles.line_linked;
110-
if(paramsForLineLinked.enable_auto == false) pJS.particles.line_linked.enable_auto = paramsForLineLinked.enable_auto;
111-
if(paramsForLineLinked.distance) pJS.particles.line_linked.distance = paramsForLineLinked.distance;
112-
if(paramsForLineLinked.color) pJS.particles.line_linked.color = paramsForLineLinked.color;
113-
if(paramsForLineLinked.opacity) pJS.particles.line_linked.opacity = paramsForLineLinked.opacity;
114-
if(paramsForLineLinked.width) pJS.particles.line_linked.width = paramsForLineLinked.width;
115-
if(paramsForLineLinked.condensed_mode){
116-
var paramsForCondensedMode = paramsForLineLinked.condensed_mode;
117-
if(paramsForCondensedMode.enable == false) pJS.particles.line_linked.condensed_mode.enable = paramsForCondensedMode.enable;
118-
if(paramsForCondensedMode.rotateX) pJS.particles.line_linked.condensed_mode.rotateX = paramsForCondensedMode.rotateX;
119-
if(paramsForCondensedMode.rotateY) pJS.particles.line_linked.condensed_mode.rotateY = paramsForCondensedMode.rotateY;
120-
}
121-
}
122-
if(paramsForParticles.anim){
123-
var paramsForAnim = paramsForParticles.anim;
124-
if(paramsForAnim.enable == false) pJS.particles.anim.enable = paramsForAnim.enable;
125-
if(paramsForAnim.speed) pJS.particles.anim.speed = paramsForAnim.speed;
126-
}
127-
}
128-
if(params.interactivity){
129-
var paramsForInteractivity = params.interactivity;
130-
if(paramsForInteractivity.enable == false) pJS.interactivity.enable = paramsForInteractivity.enable;
131-
if(paramsForInteractivity.mouse){
132-
if(paramsForInteractivity.mouse.distance) pJS.interactivity.mouse.distance = paramsForInteractivity.mouse.distance;
133-
}
134-
if(paramsForInteractivity.detect_on) pJS.interactivity.detect_on = paramsForInteractivity.detect_on;
135-
if(paramsForInteractivity.mode == false || paramsForInteractivity.mode) pJS.interactivity.mode = paramsForInteractivity.mode;
136-
if(paramsForInteractivity.line_linked){
137-
if(paramsForInteractivity.line_linked.opacity) pJS.interactivity.line_linked.opacity = paramsForInteractivity.line_linked.opacity;
138-
}
139-
if(paramsForInteractivity.events){
140-
var paramsForEvents = paramsForInteractivity.events;
141-
if(paramsForEvents.onclick){
142-
var paramsForOnclick = paramsForEvents.onclick;
143-
if(paramsForOnclick.enable == false) pJS.interactivity.events.onclick.enable = false;
144-
if(paramsForOnclick.mode != 'push') pJS.interactivity.events.onclick.mode = paramsForOnclick.mode;
145-
if(paramsForOnclick.nb) pJS.interactivity.events.onclick.nb = paramsForOnclick.nb;
146-
}
147-
if(paramsForEvents.onresize){
148-
var paramsForOnresize = paramsForEvents.onresize;
149-
if(paramsForOnresize.enable == false) pJS.interactivity.events.onresize.enable = false;
150-
if(paramsForOnresize.mode) pJS.interactivity.events.onresize.mode = paramsForOnresize.mode;
151-
if(paramsForOnresize.density_auto == false || paramsForOnresize.density_auto) pJS.interactivity.events.onresize.density_auto = paramsForOnresize.density_auto;
152-
if(paramsForOnresize.density_area) pJS.interactivity.events.onresize.density_area = paramsForOnresize.density_area;
153-
}
86+
Object.deepExtend = function(destination, source) {
87+
for (var property in source) {
88+
if (source[property] && source[property].constructor &&
89+
source[property].constructor === Object) {
90+
destination[property] = destination[property] || {};
91+
arguments.callee(destination[property], source[property]);
92+
} else {
93+
destination[property] = source[property];
15494
}
15595
}
156-
pJS.retina_detect = params.retina_detect;
96+
return destination;
97+
};
98+
99+
/* params settings */
100+
if(params){
101+
Object.deepExtend(pJS, params);
157102
}
158103

159104
/* convert hex colors to rgb */

0 commit comments

Comments
 (0)