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)
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