Skip to content

Commit 0badcf1

Browse files
committed
Reset element state before each refresh
1 parent 680e2b1 commit 0badcf1

File tree

3 files changed

+25
-81
lines changed

3 files changed

+25
-81
lines changed

jquery.stellar.js

Lines changed: 12 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@
2828
scrollProperty = {
2929
scroll: {
3030
getLeft: function($elem) { return $elem.scrollLeft(); },
31-
setLeft: function($elem, val) { $elem.scrollLeft(val); },
32-
33-
getTop: function($elem) { return $elem.scrollTop(); },
34-
setTop: function($elem, val) { $elem.scrollTop(val); }
31+
getTop: function($elem) { return $elem.scrollTop(); }
3532
},
3633
position: {
3734
getLeft: function($elem) { return parseInt($elem.css('left'), 10) * -1; },
@@ -174,18 +171,7 @@
174171
},
175172
_defineSetters: function() {
176173
var self = this,
177-
scrollPropertyAdapter = scrollProperty[self.options.scrollProperty],
178-
positionPropertyAdapter = positionProperty[self.options.positionProperty],
179-
setScrollLeft = scrollPropertyAdapter.setLeft,
180-
setScrollTop = scrollPropertyAdapter.setTop;
181-
182-
this._setScrollLeft = (typeof setScrollLeft === 'function' ? function(val) {
183-
setScrollLeft(self.$scrollElement, val);
184-
} : $.noop);
185-
186-
this._setScrollTop = (typeof setScrollTop === 'function' ? function(val) {
187-
setScrollTop(self.$scrollElement, val);
188-
} : $.noop);
174+
positionPropertyAdapter = positionProperty[self.options.positionProperty];
189175

190176
this._setPosition = positionPropertyAdapter.setPosition ||
191177
function($elem, left, startingLeft, top, startingTop) {
@@ -217,33 +203,13 @@
217203
});
218204
},
219205
refresh: function(options) {
220-
var self = this,
221-
oldLeft = self._getScrollLeft(),
222-
oldTop = self._getScrollTop();
223-
224-
this._setScrollLeft(0);
225-
this._setScrollTop(0);
206+
if (!options || !options.firstLoad) {
207+
this._reset();
208+
}
226209

227210
this._setOffsets();
228211
this._findParticles();
229212
this._findBackgrounds();
230-
231-
// Fix for WebKit background rendering bug
232-
if (options && options.firstLoad && /WebKit/.test(navigator.userAgent)) {
233-
$(window).load(function() {
234-
var oldLeft = self._getScrollLeft(),
235-
oldTop = self._getScrollTop();
236-
237-
self._setScrollLeft(oldLeft + 1);
238-
self._setScrollTop(oldTop + 1);
239-
240-
self._setScrollLeft(oldLeft);
241-
self._setScrollTop(oldTop);
242-
});
243-
}
244-
245-
this._setScrollLeft(oldLeft);
246-
this._setScrollTop(oldTop);
247213
},
248214
_detectViewport: function() {
249215
var viewportOffsets = this.$viewportElement.offset(),
@@ -449,7 +415,7 @@
449415
});
450416
});
451417
},
452-
destroy: function() {
418+
_reset: function() {
453419
var particle,
454420
startingPositionLeft,
455421
startingPositionTop,
@@ -470,8 +436,14 @@
470436

471437
for (i = this.backgrounds.length - 1; i >= 0; i--) {
472438
background = this.backgrounds[i];
439+
440+
background.$element.data('stellar-backgroundStartingLeft', null).data('stellar-backgroundStartingTop', null);
441+
473442
setBackgroundPosition(background.$element, background.startingValueLeft, background.startingValueTop);
474443
}
444+
},
445+
destroy: function() {
446+
this._reset();
475447

476448
this.$scrollElement.unbind('resize.' + this.name).unbind('scroll.' + this.name);
477449
this._animationLoop = $.noop;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy