Skip to content

Commit 0a5f0a5

Browse files
committed
Remove redundant position setter logic
1 parent 96bab52 commit 0a5f0a5

File tree

3 files changed

+45
-109
lines changed

3 files changed

+45
-109
lines changed

jquery.stellar.js

Lines changed: 22 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,21 @@
3535
},
3636
position: {
3737
getTop: function($elem) { return parseInt($elem.css('top'), 10) * -1; },
38-
setTop: function($elem, val) { $elem.css('top', val); },
39-
40-
getLeft: function($elem) { return parseInt($elem.css('left'), 10) * -1; },
41-
setLeft: function($elem, val) { $elem.css('left', val); }
38+
getLeft: function($elem) { return parseInt($elem.css('left'), 10) * -1; }
4239
},
4340
margin: {
4441
getTop: function($elem) { return parseInt($elem.css('margin-top'), 10) * -1; },
45-
setTop: function($elem, val) { $elem.css('margin-top', val); },
46-
47-
getLeft: function($elem) { return parseInt($elem.css('margin-left'), 10) * -1; },
48-
setLeft: function($elem, val) { $elem.css('margin-left', val); }
42+
getLeft: function($elem) { return parseInt($elem.css('margin-left'), 10) * -1; }
4943
},
5044
transform: {
51-
getTop: function($elem) { return (getComputedStyle($elem[0])[transform] !== 'none' ? parseInt(getComputedStyle($elem[0])[transform].match(/(-?[0-9]+)/g)[5], 10) * -1 : 0); },
52-
setTop: function($elem, val) { setTransform($elem, val, 'Y'); },
53-
54-
getLeft: function($elem) { return (getComputedStyle($elem[0])[transform] !== 'none' ? parseInt(getComputedStyle($elem[0])[transform].match(/(-?[0-9]+)/g)[4], 10) * -1 : 0); },
55-
setLeft: function($elem, val) { setTransform($elem, val, 'X'); }
45+
getTop: function($elem) {
46+
var computedTransform = getComputedStyle($elem[0])[transform];
47+
return computedTransform !== 'none' ? parseInt(computedTransform.match(/(-?[0-9]+)/g)[5], 10) * -1 : 0;
48+
},
49+
getLeft: function($elem) {
50+
var computedTransform = getComputedStyle($elem[0])[transform];
51+
return computedTransform !== 'none' ? parseInt(computedTransform.match(/(-?[0-9]+)/g)[4], 10) * -1 : 0;
52+
}
5653
}
5754
},
5855

@@ -119,38 +116,6 @@
119116
};
120117
}()),
121118

122-
setTransform = function($elem, val, dimension /* 'X' or 'Y' */) {
123-
var currentTransform = getComputedStyle($elem[0])[transform];
124-
125-
if (currentTransform === 'none') {
126-
$elem[0].style[transform] = 'translate' + dimension + '(' + val + 'px)';
127-
} else {
128-
$elem[0].style[transform] = replaceNthOccurence(currentTransform, /(-?[0-9]+[.]?[0-9]*)/g, (dimension === 'X' ? 5 : 6), val);
129-
}
130-
},
131-
132-
replaceNthOccurence = function(original, pattern, n, replace) {
133-
var parts,
134-
tempParts,
135-
indexOfNthMatch;
136-
137-
if (original.search(pattern) === -1) {
138-
return original;
139-
}
140-
141-
parts = original.split(pattern);
142-
143-
indexOfNthMatch = n * 2 - 1;
144-
145-
if (parts[indexOfNthMatch] === undefined) {
146-
return original;
147-
}
148-
149-
parts[indexOfNthMatch] = replace;
150-
151-
return parts.join('');
152-
},
153-
154119
requestAnimFrame = (function(){
155120
return window.requestAnimationFrame ||
156121
window.webkitRequestAnimationFrame ||
@@ -209,15 +174,18 @@
209174
},
210175
_defineSetters: function() {
211176
var self = this,
212-
positionPropertyAdapter = positionProperty[self.options.positionProperty];
177+
scrollPropertyAdapter = scrollProperty[self.options.scrollProperty],
178+
positionPropertyAdapter = positionProperty[self.options.positionProperty],
179+
setScrollLeft = scrollPropertyAdapter.setLeft,
180+
setScrollTop = scrollPropertyAdapter.setTop;
213181

214-
this._setScrollLeft = function(val) {
215-
scrollProperty[self.options.scrollProperty].setLeft(self.$scrollElement, val);
216-
};
182+
this._setScrollLeft = typeof setScrollLeft === 'function' ? function(val) {
183+
setScrollLeft(self.$scrollElement, val);
184+
} : $.noop;
217185

218-
this._setScrollTop = function(val) {
219-
scrollProperty[self.options.scrollProperty].setTop(self.$scrollElement, val);
220-
};
186+
this._setScrollTop = typeof setScrollTop === 'function' ? function(val) {
187+
setScrollTop(self.$scrollElement, val);
188+
} : $.noop;
221189

222190
this._setPosition = positionPropertyAdapter.setPosition ||
223191
function($elem, left, startingLeft, top, startingTop) {
@@ -274,8 +242,8 @@
274242
});
275243
}
276244

277-
self._setScrollLeft(oldLeft);
278-
self._setScrollTop(oldTop);
245+
this._setScrollLeft(oldLeft);
246+
this._setScrollTop(oldTop);
279247
},
280248
_detectViewport: function() {
281249
var viewportOffsets = this.$viewportElement.offset(),

0 commit comments

Comments
 (0)