12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- //CLASS: 缩放控制类
- function Scale(layer) {
- this.layer = layer;
- this.div = layer.div;
- this.active();
- this.mark=document.getElementById("mark");
- this.top="85px";
- this.top3d="85px";
- };
- Scale.prototype.wheelChange = function(e) {
- var type=e.type;
- var delta;
- if (type == 'DOMMouseScroll' || type == 'mousewheel') {
- delta = (e.wheelDelta) ? (e.wheelDelta / 120)*2 : -(e.detail || 0) / 3*2;
- }
- var deltalX = this.layer.size.w/2 - (e.offsetX || e.layerX);
- var deltalY = (e.offsetY || e.layerY) - this.layer.size.h/2;
-
- var px = {x: (e.offsetX || e.layerX), y:(e.offsetY || e.layerY)};
- var zoomPoint = this.layer.getPositionFromPx(px);
- var zoom = this.layer.zoom + delta;
- if(zoom <= 16) {
- return;
- }
-
-
- var markpy=parseInt(this.mark.style.marginTop);
- markpy-=delta;
- if(markpy<MixMark)
- {
- markpy=MixMark;
- }
- else if(markpy>MaxMark)
- {
- markpy=MaxMark;
- }
- mark.style.marginTop=markpy+"px";
- this.top=mark.style.marginTop;
-
- var newRes = this.layer.getResFromZoom(zoom);
-
- var center = new CanvasSketch.Position(zoomPoint.x + deltalX * newRes, zoomPoint.y + deltalY * newRes);
-
- this.layer.moveTo(zoom, center);
- this.layer.renderer.autoRedraw();
- CanvasSketch.stopEventBubble(e);
- };
- Scale.prototype.DOMScroll = function(e) {
- CanvasSketch.stopEventBubble(e);
- };
- Scale.prototype.Events = [["mousewheel", Scale.prototype.wheelChange],["DOMMouseScroll", Scale.prototype.wheelChange]];
- Scale.prototype.active = function () {
- this.div.addEventListener("mousewheel", Scale.prototype.wheelChange.bind(this), true);
- this.div.addEventListener("DOMMouseScroll", Scale.prototype.wheelChange.bind(this), true);
- };
|