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