No closure, to make testing easier

This commit is contained in:
ahocevar
2012-12-14 17:27:44 +01:00
parent f51211e93f
commit 3ab9a1f63b
+34 -28
View File
@@ -6,6 +6,7 @@
/** /**
* @requires OpenLayers/BaseTypes/Class.js * @requires OpenLayers/BaseTypes/Class.js
* @requires OpenLayers/Util.js * @requires OpenLayers/Util.js
* @requires OpenLayers/Util/vendorPrefix.js
* @requires OpenLayers/Events.js * @requires OpenLayers/Events.js
* @requires OpenLayers/Tween.js * @requires OpenLayers/Tween.js
* @requires OpenLayers/Projection.js * @requires OpenLayers/Projection.js
@@ -2659,36 +2660,41 @@ OpenLayers.Map = OpenLayers.Class({
* the map's <layerContainerOriginPx> * the map's <layerContainerOriginPx>
* scale - {Number} scale. Defaults to 1 if not provided. * scale - {Number} scale. Defaults to 1 if not provided.
*/ */
applyTransform: (function() { applyTransform: function(dx, dy, scale) {
var transformProperty, var origin = this.layerContainerOriginPx;
translatePrefix = 'translate3d(', dx = dx || origin.x;
translatePostfix = ',0)', dy = dy || origin.y;
scalePrefix = 'scale3d(', scale = scale || 1;
scalePostfix = ',1)';
return function(dx, dy, scale) { var style = this.layerContainerDiv.style,
var origin = this.layerContainerOriginPx; transform = this.applyTransform.transform,
dx = dx || origin.x; template = this.applyTransform.template;
dy = dy || origin.y;
scale = scale || 1; if (transform === undefined) {
var style = this.layerContainerDiv.style; transform = OpenLayers.Util.vendorPrefix.style('transform');
if (transformProperty === undefined) { this.applyTransform.transform = transform;
transformProperty = OpenLayers.Util.vendorPrefix.style("transform"); }
style[transformProperty] = translatePrefix + '0,0' + translatePostfix;
if (!~style[transformProperty].indexOf(translatePrefix)) { if (transform) {
translatePrefix = 'translate('; if (!template) {
translatePostfix = ')'; // try translate3d
scalePrefix = 'scale('; template = ['translate3d(', ',0) ', 'scale3d(', ',1)'];
scalePostfix = ')'; style[transform] = [template[0], '0,0', template[1]].join('');
// if translate3d does not stick, use translate and scale
if (!~style[transform].indexOf(template[0])) {
template = ['translate(', ') ', 'scale(', ')'];
} }
this.applyTransform.template = template;
} }
if (transformProperty) { style[transform] = [
style[transformProperty] = translatePrefix + dx + 'px,' + dy + 'px' + translatePostfix + scalePrefix + scale + ',' + scale + scalePostfix; template[0], dx, 'px,', dy, 'px', template[1],
} else { template[2], scale, ',', scale, template[3]
style.left = dx + 'px'; ].join('');
style.top = dy + 'px'; } else {
} style.left = dx + 'px';
}; style.top = dy + 'px';
}()), }
},
CLASS_NAME: "OpenLayers.Map" CLASS_NAME: "OpenLayers.Map"
}); });