//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(markpyMaxMark) { 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); };