Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cd86acc

Browse files
nikgrafjscottsmith
authored andcommitted
check for elements (jscottsmith#106)
1 parent e3e4d89 commit cd86acc

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

‎src/classes/ParallaxController.js‎

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,14 @@ function ParallaxController({ scrollAxis = VERTICAL, scrollContainer }) {
9191
* attributes, if so set the elements parallax styles.
9292
*/
9393
function _updateAllElements({ updateCache } = {}) {
94-
elements.forEach(element => {
95-
_updateElementPosition(element);
96-
if (updateCache) {
97-
element.setCachedAttributes(view, scroll);
98-
}
99-
});
94+
if (elements) {
95+
elements.forEach(element => {
96+
_updateElementPosition(element);
97+
if (updateCache) {
98+
element.setCachedAttributes(view, scroll);
99+
}
100+
});
101+
}
100102
// reset ticking so more animations can be called
101103
ticking = false;
102104
}
@@ -151,7 +153,7 @@ function ParallaxController({ scrollAxis = VERTICAL, scrollContainer }) {
151153
this.createElement = function(options) {
152154
const newElement = new Element({ ...options, scrollAxis });
153155
newElement.setCachedAttributes(view, scroll);
154-
elements = [...elements, newElement];
156+
elements = elements ? [...elements, newElement] : [newElement];
155157
_updateElementPosition(newElement);
156158
return newElement;
157159
};
@@ -171,12 +173,14 @@ function ParallaxController({ scrollAxis = VERTICAL, scrollContainer }) {
171173
* @param {object} options
172174
*/
173175
this.updateElementPropsById = function(id, props) {
174-
elements = elements.map(el => {
175-
if (el.id === id) {
176-
return el.updateProps(props);
177-
}
178-
return el;
179-
});
176+
if (elements) {
177+
elements = elements.map(el => {
178+
if (el.id === id) {
179+
return el.updateProps(props);
180+
}
181+
return el;
182+
});
183+
}
180184

181185
this.update();
182186
};
@@ -214,7 +218,9 @@ function ParallaxController({ scrollAxis = VERTICAL, scrollContainer }) {
214218
*/
215219
this.destroy = function() {
216220
_removeListeners(viewEl);
217-
elements.forEach(element => resetStyles(element));
221+
if (elements) {
222+
elements.forEach(element => resetStyles(element));
223+
}
218224
elements = undefined;
219225
};
220226
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /