No closure, to make testing easier

This commit is contained in:
ahocevar
2012-12-14 17:27:44 +01:00
parent f51211e93f
commit 3ab9a1f63b

View File

@@ -6,6 +6,7 @@
/**
* @requires OpenLayers/BaseTypes/Class.js
* @requires OpenLayers/Util.js
* @requires OpenLayers/Util/vendorPrefix.js
* @requires OpenLayers/Events.js
* @requires OpenLayers/Tween.js
* @requires OpenLayers/Projection.js
@@ -2659,36 +2660,41 @@ OpenLayers.Map = OpenLayers.Class({
* the map's <layerContainerOriginPx>
* scale - {Number} scale. Defaults to 1 if not provided.
*/
applyTransform: (function() {
var transformProperty,
translatePrefix = 'translate3d(',
translatePostfix = ',0)',
scalePrefix = 'scale3d(',
scalePostfix = ',1)';
return function(dx, dy, scale) {
var origin = this.layerContainerOriginPx;
dx = dx || origin.x;
dy = dy || origin.y;
scale = scale || 1;
var style = this.layerContainerDiv.style;
if (transformProperty === undefined) {
transformProperty = OpenLayers.Util.vendorPrefix.style("transform");
style[transformProperty] = translatePrefix + '0,0' + translatePostfix;
if (!~style[transformProperty].indexOf(translatePrefix)) {
translatePrefix = 'translate(';
translatePostfix = ')';
scalePrefix = 'scale(';
scalePostfix = ')';
applyTransform: function(dx, dy, scale) {
var origin = this.layerContainerOriginPx;
dx = dx || origin.x;
dy = dy || origin.y;
scale = scale || 1;
var style = this.layerContainerDiv.style,
transform = this.applyTransform.transform,
template = this.applyTransform.template;
if (transform === undefined) {
transform = OpenLayers.Util.vendorPrefix.style('transform');
this.applyTransform.transform = transform;
}
if (transform) {
if (!template) {
// try translate3d
template = ['translate3d(', ',0) ', 'scale3d(', ',1)'];
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[transformProperty] = translatePrefix + dx + 'px,' + dy + 'px' + translatePostfix + scalePrefix + scale + ',' + scale + scalePostfix;
} else {
style.left = dx + 'px';
style.top = dy + 'px';
}
};
}()),
style[transform] = [
template[0], dx, 'px,', dy, 'px', template[1],
template[2], scale, ',', scale, template[3]
].join('');
} else {
style.left = dx + 'px';
style.top = dy + 'px';
}
},
CLASS_NAME: "OpenLayers.Map"
});