No closure, to make testing easier
This commit is contained in:
@@ -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"
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user