Skip to content

Commit 3f59786

Browse files
committed
Use a single function call when setting a position transform
1 parent 5286858 commit 3f59786

File tree

4 files changed

+37
-41
lines changed

4 files changed

+37
-41
lines changed

jquery.stellar.js

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,9 @@
6262
setLeft: function($elem, left) { $elem.css('left', left); }
6363
},
6464
transform: {
65-
setTop: function($elem, top, startingTop) { setTransform($elem, top - startingTop, 'Y'); },
66-
setLeft: function($elem, left, startingLeft) { setTransform($elem, left - startingLeft, 'X'); }
65+
setPosition: function($elem, left, startingLeft, top, startingTop) {
66+
$elem[0].style[vendorPrefix('transform')] = 'translate(' + (left - startingLeft) + 'px, ' + (top - startingTop) + 'px)';
67+
}
6768
}
6869
},
6970

@@ -205,7 +206,8 @@
205206
};
206207
},
207208
_defineSetters: function() {
208-
var self = this;
209+
var self = this,
210+
positionPropertyAdapter = positionProperty[self.options.positionProperty];
209211

210212
this._setScrollLeft = function(val) {
211213
scrollProperty[self.options.scrollProperty].setLeft(self.$scrollElement, val);
@@ -215,13 +217,16 @@
215217
scrollProperty[self.options.scrollProperty].setTop(self.$scrollElement, val);
216218
};
217219

218-
this._setLeft = function($elem, left, startingLeft) {
219-
positionProperty[self.options.positionProperty].setLeft($elem, left, startingLeft);
220-
};
220+
this._setPosition = positionPropertyAdapter.setPosition ||
221+
function($elem, left, startingLeft, top, startingTop) {
222+
if (self.options.horizontalScrolling) {
223+
positionPropertyAdapter.setLeft($elem, left, startingLeft);
224+
}
221225

222-
this._setTop = function($elem, top, startingTop) {
223-
positionProperty[self.options.positionProperty].setTop($elem, top, startingTop);
224-
};
226+
if (self.options.verticalScrolling) {
227+
positionPropertyAdapter.setTop($elem, top, startingTop);
228+
}
229+
};
225230
},
226231
_handleWindowLoadAndResize: function() {
227232
var self = this,
@@ -486,8 +491,7 @@
486491
startingPositionLeft = particle.$element.data('stellar-startingLeft');
487492
startingPositionTop = particle.$element.data('stellar-startingTop');
488493

489-
this._setLeft(particle.$element, startingPositionLeft, startingPositionLeft);
490-
this._setTop(particle.$element, startingPositionTop, startingPositionTop);
494+
this._setPosition(particle.$element, startingPositionLeft, startingPositionLeft, startingPositionTop, startingPositionTop);
491495

492496
this.options.showElement(particle.$element);
493497

@@ -584,13 +588,7 @@
584588
particle.isHidden = false;
585589
}
586590

587-
if (this.options.horizontalScrolling) {
588-
this._setLeft(particle.$element, newPositionLeft, particle.startingPositionLeft);
589-
}
590-
591-
if (this.options.verticalScrolling) {
592-
this._setTop(particle.$element, newPositionTop, particle.startingPositionTop);
593-
}
591+
this._setPosition(particle.$element, newPositionLeft, particle.startingPositionLeft, newPositionTop, particle.startingPositionTop);
594592
} else {
595593
if (!particle.isHidden) {
596594
this.options.hideElement(particle.$element);

0 commit comments

Comments
 (0)