Skip to content

Commit 0822e0d

Browse files
css optimizations
1 parent b001510 commit 0822e0d

File tree

1 file changed

+21
-39
lines changed

1 file changed

+21
-39
lines changed

jquery.ui.rotatable.js

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*
1616
* Usages:
1717
* $('#foo .bar').rotatable();
18-
* $('#foo .bar').resizable().rotatable();
18+
* $('#foo .bar').resizable().rotatable().draggable();
1919
* $('#foo .bar').rotatable({ angle: 30 });
2020
*
2121
* Inspired by jQuery UI Resizable Widget and Aidan Rogers's (godswearhats) jquery-ui-rotatable Widget
@@ -151,8 +151,9 @@ $.widget('ui.rotatable', $.ui.mouse, {
151151
};
152152
}
153153
// or
154-
if (this.element.css('transform-origin') !== undefined) {
155-
var origin = this.element.css('transform-origin').match(/([\d.]+)px +([\d.]+)px/);
154+
var transformOrigin = this.element.css('transform-origin');
155+
if (typeof transformOrigin === 'string') {
156+
var origin = transformOrigin.match(/([\d.]+)px +([\d.]+)px/);
156157
if (origin !== null) {
157158
return {
158159
x: elementOffset.left + this._num(origin[1]),
@@ -180,32 +181,17 @@ $.widget('ui.rotatable', $.ui.mouse, {
180181
},
181182

182183
_do: function (angle) {
183-
if (this._isRotationOriginPositionGiven()) {
184-
var transformOrigin = this._getRotationOriginPositionLeft() + 'px ' + this._getRotationOriginPositionTop() + 'px';
185-
this.element.css('-webkit-transform-origin', transformOrigin);
186-
this.element.css('-moz-transform-origin', transformOrigin);
187-
this.element.css('-ms-transform-origin', transformOrigin);
188-
this.element.css('transform-origin', transformOrigin);
189-
}
184+
var element = this.element;
190185
var oldAngle = null;
191-
var currentTransform = this.element.css('-webkit-transform');
192-
if (currentTransform === undefined || currentTransform === 'none') {
193-
currentTransform = this.element.css('-moz-transform');
194-
if (currentTransform === undefined || currentTransform === 'none') {
195-
currentTransform = this.element.css('-ms-transform');
196-
if (currentTransform === undefined || currentTransform === 'none') {
197-
currentTransform = this.element.css('-o-transform');
198-
if (currentTransform === undefined || currentTransform === 'none') {
199-
currentTransform = this.element.css('transform');
200-
if (currentTransform === undefined || currentTransform === 'none') {
201-
currentTransform = null;
202-
}
203-
}
204-
}
205-
}
186+
var currentTransform = element.css('transform');
187+
if (currentTransform === undefined) {
188+
return;
189+
}
190+
if (this._isRotationOriginPositionGiven()) {
191+
element.css('transform-origin', this._getRotationOriginPositionLeft() + 'px ' + this._getRotationOriginPositionTop() + 'px');
206192
}
207193
var newTransform = 'rotate(' + angle + 'deg) ';
208-
if (currentTransform !== null) {
194+
if (currentTransform !== 'none') {
209195
var regex = /matrix\((.*),(.*),(.*),(.*),(.*),(.*)\)/;
210196
var match = regex.exec(currentTransform);
211197
if (match !== null) {
@@ -215,8 +201,8 @@ $.widget('ui.rotatable', $.ui.mouse, {
215201
var d = this._num(match[4]);
216202
var e = this._num(match[5]);
217203
var f = this._num(match[6]);
218-
if (e != 0) {
219-
if (f == 0) {
204+
if (e !== 0) {
205+
if (f === 0) {
220206
newTransform += 'translate(' + e + 'px) ';
221207
}
222208
else {
@@ -226,29 +212,29 @@ $.widget('ui.rotatable', $.ui.mouse, {
226212
var del = a * d - b * c;
227213
var x = null;
228214
var y = null;
229-
if (a != 0 || b != 0) {
215+
if (a !== 0 || b !== 0) {
230216
var r = this._round(Math.sqrt(a * a + b * b), 5);
231217
oldAngle = this._angleInDegrees(b > 0 ? Math.acos(a / r) : -Math.acos(a / r));
232218
x = r;
233219
y = this._round(del / r, 5);
234-
if (x != 1 || y != 1) {
220+
if (x !== 1 || y !== 1) {
235221
newTransform += 'scale(' + x + (x === y ? '' : ', ' + y) + ') ';
236222
}
237223
x = Math.atan((a * c + b * d) / (r * r));
238-
if (x != 0) {
224+
if (x !== 0) {
239225
newTransform += 'skewX(' + this._angleInDegrees(x) + 'deg) ';
240226
}
241227
}
242-
else if (c != 0 || d != 0) {
228+
else if (c !== 0 || d !== 0) {
243229
var s = Math.sqrt(c * c + d * d);
244230
oldAngle = this._angleInDegrees((Math.PI / 2) - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s)));
245231
x = del / s;
246232
y = s;
247-
if (x != 1 || y != 1) {
233+
if (x !== 1 || y !== 1) {
248234
newTransform += 'scale(' + x + (x === y ? '' : ', ' + y) + ') ';
249235
}
250236
x = Math.atan((a * c + b * d) / (s * s));
251-
if (x != 0) {
237+
if (x !== 0) {
252238
newTransform += 'skewY(' + this._angleInDegrees(x) + 'deg) ';
253239
}
254240
}
@@ -257,11 +243,7 @@ $.widget('ui.rotatable', $.ui.mouse, {
257243
}
258244
}
259245
}
260-
this.element.css('-webkit-transform', newTransform);
261-
this.element.css('-moz-transform', newTransform);
262-
this.element.css('-ms-transform', newTransform);
263-
this.element.css('-o-transform', newTransform);
264-
this.element.css('transform', newTransform);
246+
element.css('transform', newTransform);
265247
},
266248

267249
_create: function() {

0 commit comments

Comments
 (0)