手机图片js在线剪切

来源:互联网 发布:mysql 初始化root密码 编辑:程序博客网 时间:2024/06/08 17:19

现在js在线剪切的方案很多,但是基本都是电脑的,在手机上就不适用了;所有,我就找了一个方案,然后修改其中的事件处理。把电脑点击事件改成手机触屏事件。

方案:

html代码:

<div id="cutArea" hidden><table width="320" border="0" cellspacing="0" cellpadding="0">  <tr>    <td width="300">      <div id="bgDiv">              </div>    </td>  </tr></table><br /><input id="cutImg" type="button" class="button" value="完成剪切" onclick="cutImg();" /><br/><div id="viewDiv"> </div><br /><input id="idPicUrl" type="hidden" value="" /><img src="" hidden id="createImg"><img src="" id="can_img" alt="" style="height:0"></div>



js:顺序不要打乱。

var isIE = (document.all) ? true : false;var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6);var $no = function (id) {return "string" == typeof id ? document.getElementById(id) : id;};var Class = {create: function() {return function() { this.initialize.apply(this, arguments); }}}var Extend = function(destination, source) {for (var property in source) {destination[property] = source[property];}}var Bind = function(object, fun) {return function() {return fun.apply(object, arguments);}}var BindAsEventListener = function(object, fun) {var args = Array.prototype.slice.call(arguments).slice(2);return function(event) {return fun.apply(object, [event || window.event].concat(args));}}var CurrentStyle = function(element){return element.currentStyle || document.defaultView.getComputedStyle(element, null);}function addEventHandler(oTarget, sEventType, fnHandler) {if (oTarget.addEventListener) {oTarget.addEventListener(sEventType, fnHandler, false);} else if (oTarget.attachEvent) {oTarget.attachEvent("on" + sEventType, fnHandler);} else {oTarget["on" + sEventType] = fnHandler;}};function removeEventHandler(oTarget, sEventType, fnHandler) {    if (oTarget.removeEventListener) {        oTarget.removeEventListener(sEventType, fnHandler, false);    } else if (oTarget.detachEvent) {        oTarget.detachEvent("on" + sEventType, fnHandler);    } else {         oTarget["on" + sEventType] = null;    }};//图片切割var ImgCropper = Class.create();ImgCropper.prototype = {  //容器对象,控制层,图片地址  initialize: function(container, handle, url, options) {this._Container = $no(container);//容器对象this._layHandle = $no(handle);//控制层this.Url = url;//图片地址this._layBase = this._Container.appendChild(document.createElement("img"));//底层this._layCropper = this._Container.appendChild(document.createElement("img"));//切割层this._layCropper.onload = Bind(this, this.SetPos);//用来设置大小this._tempImg = document.createElement("img");this._tempImg.onload = Bind(this, this.SetSize);this.SetOptions(options);this.Opacity = Math.round(this.options.Opacity);this.Color = this.options.Color;this.Scale = !!this.options.Scale;this.Ratio = Math.max(this.options.Ratio, 0);this.Width = Math.round(this.options.Width);this.Height = Math.round(this.options.Height);//设置预览对象var oPreview = $no(this.options.Preview);//预览对象if(oPreview){oPreview.style.position = "relative";oPreview.style.overflow = "hidden";this.viewWidth = Math.round(this.options.viewWidth);this.viewHeight = Math.round(this.options.viewHeight);//预览图片对象this._view = oPreview.appendChild(document.createElement("img"));this._view.style.position = "absolute";this._view.onload = Bind(this, this.SetPreview);}//设置拖放this._drag = new Drag(this._layHandle, { Limit: true, onMove: Bind(this, this.SetPos), Transparent: true });//设置缩放this.Resize = !!this.options.Resize;if(this.Resize){var op = this.options, _resize = new Resize(this._layHandle, { Max: true, onResize: Bind(this, this.SetPos) });//设置缩放触发对象op.RightDown && (_resize.Set(op.RightDown, "right-down"));op.LeftDown && (_resize.Set(op.LeftDown, "left-down"));op.RightUp && (_resize.Set(op.RightUp, "right-up"));op.LeftUp && (_resize.Set(op.LeftUp, "left-up"));op.Right && (_resize.Set(op.Right, "right"));op.Left && (_resize.Set(op.Left, "left"));op.Down && (_resize.Set(op.Down, "down"));op.Up && (_resize.Set(op.Up, "up"));//最小范围限制this.Min = !!this.options.Min;this.minWidth = Math.round(this.options.minWidth);this.minHeight = Math.round(this.options.minHeight);//设置缩放对象this._resize = _resize;}//设置样式this._Container.style.position = "relative";this._Container.style.overflow = "hidden";this._layHandle.style.zIndex = 200;this._layCropper.style.zIndex = 100;this._layBase.style.position = this._layCropper.style.position = "absolute";this._layBase.style.top = this._layBase.style.left = this._layCropper.style.top = this._layCropper.style.left = 0;//对齐//初始化设置this.Init();  },  //设置默认属性  SetOptions: function(options) {    this.options = {//默认值Opacity: 50,//透明度(0到100)Color: "",//背景色Width: 0,//图片高度Height: 0,//图片高度//缩放触发对象Resize: false,//是否设置缩放Right: "",//右边缩放对象Left: "",//左边缩放对象Up: "",//上边缩放对象Down: "",//下边缩放对象RightDown: "",//右下缩放对象LeftDown: "",//左下缩放对象RightUp: "",//右上缩放对象LeftUp: "",//左上缩放对象Min: false,//是否最小宽高限制(为true时下面min参数有用)minWidth: 50,//最小宽度minHeight: 50,//最小高度Scale: false,//是否按比例缩放Ratio: 0,//缩放比例(宽/高)//预览对象设置Preview: "",//预览对象viewWidth: 0,//预览宽度viewHeight: 0//预览高度    };    Extend(this.options, options || {});  },  //初始化对象  Init: function() {//设置背景色this.Color && (this._Container.style.backgroundColor = this.Color);//设置图片this._tempImg.src = this._layBase.src = this._layCropper.src = this.Url;//设置透明if(isIE){this._layBase.style.filter = "alpha(opacity:" + this.Opacity + ")";} else {this._layBase.style.opacity = this.Opacity / 100;}//设置预览对象this._view && (this._view.src = this.Url);//设置缩放if(this.Resize){with(this._resize){Scale = this.Scale; Ratio = this.Ratio; Min = this.Min; minWidth = this.minWidth; minHeight = this.minHeight;}}  },  //设置切割样式  SetPos: function() {//ie6渲染bugif(isIE6){ with(this._layHandle.style){ zoom = .9; zoom = 1; }; };//获取位置参数var p = this.GetPos();//按拖放对象的参数进行切割this._layCropper.style.clip = "rect(" + p.Top + "px " + (p.Left + p.Width) + "px " + (p.Top + p.Height) + "px " + p.Left + "px)";//设置预览this.SetPreview();  },  //设置预览效果  SetPreview: function() {if(this._view){//预览显示的宽和高var p = this.GetPos(), s = this.GetSize(p.Width, p.Height, this.viewWidth, this.viewHeight), scale = s.Height / p.Height;//按比例设置参数var pHeight = this._layBase.height * scale, pWidth = this._layBase.width * scale, pTop = p.Top * scale, pLeft = p.Left * scale;//设置预览对象with(this._view.style){//设置样式width = pWidth + "px"; height = pHeight + "px"; top = - pTop + "px "; left = - pLeft + "px";//切割预览图clip = "rect(" + pTop + "px " + (pLeft + s.Width) + "px " + (pTop + s.Height) + "px " + pLeft + "px)";}}  },  //设置图片大小  SetSize: function() {var s = this.GetSize(this._tempImg.width, this._tempImg.height, this.Width, this.Height);//设置底图和切割图this._layBase.style.width = this._layCropper.style.width = s.Width + "px";this._layBase.style.height = this._layCropper.style.height = s.Height + "px";//设置拖放范围this._drag.mxRight = s.Width; this._drag.mxBottom = s.Height;//设置缩放范围if(this.Resize){ this._resize.mxRight = s.Width; this._resize.mxBottom = s.Height; }  },  //获取当前样式  GetPos: function() {with(this._layHandle){return { Top: offsetTop, Left: offsetLeft, Width: offsetWidth, Height: offsetHeight }}  },  //获取尺寸  GetSize: function(nowWidth, nowHeight, fixWidth, fixHeight) {var iWidth = nowWidth, iHeight = nowHeight, scale = iWidth / iHeight;//按比例设置if(fixHeight){ iWidth = (iHeight = fixHeight) * scale; }if(fixWidth && (!fixHeight || iWidth > fixWidth)){ iHeight = (iWidth = fixWidth) / scale; }//返回尺寸对象return { Width: iWidth, Height: iHeight }  }}//拖放程序var Drag = Class.create();Drag.prototype = {  //拖放对象  initialize: function(drag, options) {this.Drag = $no(drag);//拖放对象this._x = this._y = 0;//记录鼠标相对拖放对象的位置this._marginLeft = this._marginTop = 0;//记录margin//事件对象(用于绑定移除事件)this._fM = BindAsEventListener(this, this.Move);this._fS = Bind(this, this.Stop);this.SetOptions(options);this.Limit = !!this.options.Limit;this.mxLeft = parseInt(this.options.mxLeft);this.mxRight = parseInt(this.options.mxRight);this.mxTop = parseInt(this.options.mxTop);this.mxBottom = parseInt(this.options.mxBottom);this.LockX = !!this.options.LockX;this.LockY = !!this.options.LockY;this.Lock = !!this.options.Lock;this.onStart = this.options.onStart;this.onMove = this.options.onMove;this.onStop = this.options.onStop;this._Handle = $no(this.options.Handle) || this.Drag;this._mxContainer = $no(this.options.mxContainer) || null;this.Drag.style.position = "absolute";//透明if(isIE && !!this.options.Transparent){//填充拖放对象with(this._Handle.appendChild(document.createElement("div")).style){width = height = "100%"; backgroundColor = "#fff"; filter = "alpha(opacity:0)"; fontSize = 0;}}//修正范围this.Repair();addEventHandler(this._Handle, "touchstart", BindAsEventListener(this, this.Start));  },  //设置默认属性  SetOptions: function(options) {this.options = {//默认值Handle: "",//设置触发对象(不设置则使用拖放对象)Limit: false,//是否设置范围限制(为true时下面参数有用,可以是负数)mxLeft: 0,//左边限制mxRight: 9999,//右边限制mxTop: 0,//上边限制mxBottom: 9999,//下边限制mxContainer: "",//指定限制在容器内LockX: false,//是否锁定水平方向拖放LockY: false,//是否锁定垂直方向拖放Lock: false,//是否锁定Transparent: false,//是否透明onStart: function(){},//开始移动时执行onMove: function(){},//移动时执行onStop: function(){}//结束移动时执行};Extend(this.options, options || {});  },  //准备拖动  Start: function(oEvent) {if(this.Lock){ return; }this.Repair();//记录鼠标相对拖放对象的位置this._x = oEvent.touches[0].clientX - this.Drag.offsetLeft;this._y = oEvent.touches[0].clientY - this.Drag.offsetTop;//记录marginthis._marginLeft = parseInt(CurrentStyle(this.Drag).marginLeft) || 0;this._marginTop = parseInt(CurrentStyle(this.Drag).marginTop) || 0;//mousemove时移动 mouseup时停止addEventHandler(document, "touchmove", this._fM);addEventHandler(document, "touchend", this._fS);if(isIE){//焦点丢失addEventHandler(this._Handle, "losecapture", this._fS);//设置鼠标捕获this._Handle.setCapture();}else{//焦点丢失addEventHandler(window, "blur", this._fS);//阻止默认动作oEvent.preventDefault();};//附加程序this.onStart();  },  //修正范围  Repair: function() {if(this.Limit){//修正错误范围参数this.mxRight = Math.max(this.mxRight, this.mxLeft + this.Drag.offsetWidth);this.mxBottom = Math.max(this.mxBottom, this.mxTop + this.Drag.offsetHeight);//如果有容器必须设置position为relative或absolute来相对或绝对定位,并在获取offset之前设置!this._mxContainer || CurrentStyle(this._mxContainer).position == "relative" || CurrentStyle(this._mxContainer).position == "absolute" || (this._mxContainer.style.position = "relative");}  },  //拖动  Move: function(oEvent) {  console.log('move');//判断是否锁定if(this.Lock){ this.Stop(); return; };//清除选择window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();//设置移动参数var iLeft = oEvent.touches[0].clientX - this._x, iTop = oEvent.touches[0].clientY - this._y;//设置范围限制if(this.Limit){//设置范围参数var mxLeft = this.mxLeft, mxRight = this.mxRight, mxTop = this.mxTop, mxBottom = this.mxBottom;//如果设置了容器,再修正范围参数if(!!this._mxContainer){mxLeft = Math.max(mxLeft, 0);mxTop = Math.max(mxTop, 0);mxRight = Math.min(mxRight, this._mxContainer.clientWidth);mxBottom = Math.min(mxBottom, this._mxContainer.clientHeight);};//修正移动参数iLeft = Math.max(Math.min(iLeft, mxRight - this.Drag.offsetWidth), mxLeft);iTop = Math.max(Math.min(iTop, mxBottom - this.Drag.offsetHeight), mxTop);}//设置位置,并修正marginif(!this.LockX){ this.Drag.style.left = iLeft - this._marginLeft + "px"; }if(!this.LockY){ this.Drag.style.top = iTop - this._marginTop + "px"; }//附加程序this.onMove();  },  //停止拖动  Stop: function() {  console.log('unlock');//移除事件removeEventHandler(document, "touchmove", this._fM);removeEventHandler(document, "touchend", this._fS);if(isIE){removeEventHandler(this._Handle, "losecapture", this._fS);this._Handle.releaseCapture();}else{removeEventHandler(window, "blur", this._fS);};//附加程序this.onStop();  }};//缩放程序var Resize = Class.create();Resize.prototype = {  //缩放对象  initialize: function(obj, options) {this._obj = $no(obj);//缩放对象this._styleWidth = this._styleHeight = this._styleLeft = this._styleTop = 0;//样式参数this._sideRight = this._sideDown = this._sideLeft = this._sideUp = 0;//坐标参数this._fixLeft = this._fixTop = 0;//定位参数this._scaleLeft = this._scaleTop = 0;//定位坐标this._mxSet = function(){};//范围设置程序this._mxRightWidth = this._mxDownHeight = this._mxUpHeight = this._mxLeftWidth = 0;//范围参数this._mxScaleWidth = this._mxScaleHeight = 0;//比例范围参数this._fun = function(){};//缩放执行程序//获取边框宽度var _style = CurrentStyle(this._obj);this._borderX = (parseInt(_style.borderLeftWidth) || 0) + (parseInt(_style.borderRightWidth) || 0);this._borderY = (parseInt(_style.borderTopWidth) || 0) + (parseInt(_style.borderBottomWidth) || 0);//事件对象(用于绑定移除事件)this._fR = BindAsEventListener(this, this.Resize);this._fS = Bind(this, this.Stop);this.SetOptions(options);//范围限制this.Max = !!this.options.Max;this._mxContainer = $no(this.options.mxContainer) || null;this.mxLeft = Math.round(this.options.mxLeft);this.mxRight = Math.round(this.options.mxRight);this.mxTop = Math.round(this.options.mxTop);this.mxBottom = Math.round(this.options.mxBottom);//宽高限制this.Min = !!this.options.Min;this.minWidth = Math.round(this.options.minWidth);this.minHeight = Math.round(this.options.minHeight);//按比例缩放this.Scale = !!this.options.Scale;this.Ratio = Math.max(this.options.Ratio, 0);this.onResize = this.options.onResize;this._obj.style.position = "absolute";!this._mxContainer || CurrentStyle(this._mxContainer).position == "relative" || (this._mxContainer.style.position = "relative");  },  //设置默认属性  SetOptions: function(options) {    this.options = {//默认值Max: false,//是否设置范围限制(为true时下面mx参数有用)mxContainer:"",//指定限制在容器内mxLeft: 0,//左边限制mxRight: 9999,//右边限制mxTop: 0,//上边限制mxBottom: 9999,//下边限制Min: false,//是否最小宽高限制(为true时下面min参数有用)minWidth: 50,//最小宽度minHeight: 50,//最小高度Scale: false,//是否按比例缩放Ratio: 0,//缩放比例(宽/高)onResize: function(){}//缩放时执行    };    Extend(this.options, options || {});  },  //设置触发对象  Set: function(resize, side) {var resize = $no(resize), fun;if(!resize) return;//根据方向设置switch (side.toLowerCase()) {case "up" :fun = this.Up;break;case "down" :fun = this.Down;break;case "left" :fun = this.Left;break;case "right" :fun = this.Right;break;case "left-up" :fun = this.LeftUp;break;case "right-up" :fun = this.RightUp;break;case "left-down" :fun = this.LeftDown;break;case "right-down" :default :fun = this.RightDown;};//设置触发对象addEventHandler(resize, "touchstart", BindAsEventListener(this, this.Start, fun));  },  //准备缩放  Start: function(e, fun, touch) { //防止冒泡(跟拖放配合时设置)e.stopPropagation ? e.stopPropagation() : (e.cancelBubble = true);console.log(1);//设置执行程序this._fun = fun;//样式参数值this._styleWidth = this._obj.clientWidth;this._styleHeight = this._obj.clientHeight;this._styleLeft = this._obj.offsetLeft;this._styleTop = this._obj.offsetTop;//四条边定位坐标this._sideLeft = e.touches[0].clientX - this._styleWidth;this._sideRight = e.touches[0].clientX + this._styleWidth;this._sideUp = e.touches[0].clientY - this._styleHeight;this._sideDown = e.touches[0].clientY + this._styleHeight;// this._sideLeft = e.clientX - this._styleWidth;// this._sideRight = e.clientX + this._styleWidth;// this._sideUp = e.clientY - this._styleHeight;// this._sideDown = e.clientY + this._styleHeight;//top和left定位参数this._fixLeft = this._styleLeft + this._styleWidth;this._fixTop = this._styleTop + this._styleHeight;//缩放比例if(this.Scale){//设置比例this.Ratio = Math.max(this.Ratio, 0) || this._styleWidth / this._styleHeight;//left和top的定位坐标this._scaleLeft = this._styleLeft + this._styleWidth / 2;this._scaleTop = this._styleTop + this._styleHeight / 2;};//范围限制if(this.Max){//设置范围参数var mxLeft = this.mxLeft, mxRight = this.mxRight, mxTop = this.mxTop, mxBottom = this.mxBottom;//如果设置了容器,再修正范围参数if(!!this._mxContainer){mxLeft = Math.max(mxLeft, 0);mxTop = Math.max(mxTop, 0);mxRight = Math.min(mxRight, this._mxContainer.clientWidth);mxBottom = Math.min(mxBottom, this._mxContainer.clientHeight);};//根据最小值再修正mxRight = Math.max(mxRight, mxLeft + (this.Min ? this.minWidth : 0) + this._borderX);mxBottom = Math.max(mxBottom, mxTop + (this.Min ? this.minHeight : 0) + this._borderY);//由于转向时要重新设置所以写成function形式this._mxSet = function(){this._mxRightWidth = mxRight - this._styleLeft - this._borderX;this._mxDownHeight = mxBottom - this._styleTop - this._borderY;this._mxUpHeight = Math.max(this._fixTop - mxTop, this.Min ? this.minHeight : 0);this._mxLeftWidth = Math.max(this._fixLeft - mxLeft, this.Min ? this.minWidth : 0);};this._mxSet();//有缩放比例下的范围限制if(this.Scale){this._mxScaleWidth = Math.min(this._scaleLeft - mxLeft, mxRight - this._scaleLeft - this._borderX) * 2;this._mxScaleHeight = Math.min(this._scaleTop - mxTop, mxBottom - this._scaleTop - this._borderY) * 2;};};//mousemove时缩放 mouseup时停止addEventHandler(document, "touchmove", this._fR);addEventHandler(document, "touchend", this._fS);if(isIE){addEventHandler(this._obj, "losecapture", this._fS);this._obj.setCapture();}else{addEventHandler(window, "blur", this._fS);e.preventDefault();};  },  //缩放  Resize: function(e) {  console.log(2);//清除选择window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();//执行缩放程序this._fun(e);//设置样式,变量必须大于等于0否则ie出错with(this._obj.style){width = this._styleWidth + "px"; height = this._styleHeight + "px";top = this._styleTop + "px"; left = this._styleLeft + "px";}//附加程序this.onResize();  },  //缩放程序  //上  Up: function(e) {this.RepairY(this._sideDown - e.touches[0].clientY, this._mxUpHeight);this.RepairTop();this.TurnDown(this.Down);  },  //下  Down: function(e) {this.RepairY(e.touches[0].clientY - this._sideUp, this._mxDownHeight);this.TurnUp(this.Up);  },  //右  Right: function(e) {  console.log(3);  console.log(e.touches[0].clientX - this._sideLeft);this.RepairX(e.touches[0].clientX - this._sideLeft, this._mxRightWidth);this.TurnLeft(this.Left);  },  //左  Left: function(e) {this.RepairX(this._sideRight - e.touches[0].clientX, this._mxLeftWidth);this.RepairLeft();this.TurnRight(this.Right);  },  //右下  RightDown: function(e) {this.RepairAngle(e.touches[0].clientX - this._sideLeft, this._mxRightWidth,e.touches[0].clientY - this._sideUp, this._mxDownHeight);this.TurnLeft(this.LeftDown) || this.Scale || this.TurnUp(this.RightUp);  },  //右上  RightUp: function(e) {this.RepairAngle(e.touches[0].clientX - this._sideLeft, this._mxRightWidth,this._sideDown - e.touches[0].clientY, this._mxUpHeight);this.RepairTop();this.TurnLeft(this.LeftUp) || this.Scale || this.TurnDown(this.RightDown);  },  //左下  LeftDown: function(e) {this.RepairAngle(this._sideRight - e.touches[0].clientX, this._mxLeftWidth,e.touches[0].clientY - this._sideUp, this._mxDownHeight);this.RepairLeft();this.TurnRight(this.RightDown) || this.Scale || this.TurnUp(this.LeftUp);  },  //左上  LeftUp: function(e) {this.RepairAngle(this._sideRight - e.touches[0].clientX, this._mxLeftWidth,this._sideDown - e.touches[0].clientY, this._mxUpHeight);this.RepairTop(); this.RepairLeft();this.TurnRight(this.RightUp) || this.Scale || this.TurnDown(this.LeftDown);  },  //修正程序  //水平方向  RepairX: function(iWidth, mxWidth) {  console.log(iWidth, mxWidth);iWidth = this.RepairWidth(iWidth, mxWidth);if(this.Scale){var iHeight = this.RepairScaleHeight(iWidth);if(this.Max && iHeight > this._mxScaleHeight){iHeight = this._mxScaleHeight;iWidth = this.RepairScaleWidth(iHeight);}else if(this.Min && iHeight < this.minHeight){var tWidth = this.RepairScaleWidth(this.minHeight);if(tWidth < mxWidth){ iHeight = this.minHeight; iWidth = tWidth; }}this._styleHeight = iHeight;this._styleTop = this._scaleTop - iHeight / 2;}this._styleWidth = iWidth;  },  //垂直方向  RepairY: function(iHeight, mxHeight) {iHeight = this.RepairHeight(iHeight, mxHeight);if(this.Scale){var iWidth = this.RepairScaleWidth(iHeight);if(this.Max && iWidth > this._mxScaleWidth){iWidth = this._mxScaleWidth;iHeight = this.RepairScaleHeight(iWidth);}else if(this.Min && iWidth < this.minWidth){var tHeight = this.RepairScaleHeight(this.minWidth);if(tHeight < mxHeight){ iWidth = this.minWidth; iHeight = tHeight; }}this._styleWidth = iWidth;this._styleLeft = this._scaleLeft - iWidth / 2;}this._styleHeight = iHeight;  },  //对角方向  RepairAngle: function(iWidth, mxWidth, iHeight, mxHeight) {iWidth = this.RepairWidth(iWidth, mxWidth);if(this.Scale){iHeight = this.RepairScaleHeight(iWidth);if(this.Max && iHeight > mxHeight){iHeight = mxHeight;iWidth = this.RepairScaleWidth(iHeight);}else if(this.Min && iHeight < this.minHeight){var tWidth = this.RepairScaleWidth(this.minHeight);if(tWidth < mxWidth){ iHeight = this.minHeight; iWidth = tWidth; }}}else{iHeight = this.RepairHeight(iHeight, mxHeight);}this._styleWidth = iWidth;this._styleHeight = iHeight;  },  //top  RepairTop: function() {this._styleTop = this._fixTop - this._styleHeight;  },  //left  RepairLeft: function() {this._styleLeft = this._fixLeft - this._styleWidth;  },  //height  RepairHeight: function(iHeight, mxHeight) {iHeight = Math.min(this.Max ? mxHeight : iHeight, iHeight);iHeight = Math.max(this.Min ? this.minHeight : iHeight, iHeight, 0);return iHeight;  },  //width  RepairWidth: function(iWidth, mxWidth) {iWidth = Math.min(this.Max ? mxWidth : iWidth, iWidth);iWidth = Math.max(this.Min ? this.minWidth : iWidth, iWidth, 0);return iWidth;  },  //比例高度  RepairScaleHeight: function(iWidth) {return Math.max(Math.round((iWidth + this._borderX) / this.Ratio - this._borderY), 0);  },  //比例宽度  RepairScaleWidth: function(iHeight) {return Math.max(Math.round((iHeight + this._borderY) * this.Ratio - this._borderX), 0);  },  //转向程序  //转右  TurnRight: function(fun) {if(!(this.Min || this._styleWidth)){this._fun = fun;this._sideLeft = this._sideRight;this.Max && this._mxSet();return true;}  },  //转左  TurnLeft: function(fun) {if(!(this.Min || this._styleWidth)){this._fun = fun;this._sideRight = this._sideLeft;this._fixLeft = this._styleLeft;this.Max && this._mxSet();return true;}  },  //转上  TurnUp: function(fun) {if(!(this.Min || this._styleHeight)){this._fun = fun;this._sideDown = this._sideUp;this._fixTop = this._styleTop;this.Max && this._mxSet();return true;}  },  //转下  TurnDown: function(fun) {if(!(this.Min || this._styleHeight)){this._fun = fun;this._sideUp = this._sideDown;this.Max && this._mxSet();return true;}  },  //停止缩放  Stop: function() {removeEventHandler(document, "touchmove", this._fR);removeEventHandler(document, "touchend", this._fS);if(isIE){removeEventHandler(this._obj, "losecapture", this._fS);this._obj.releaseCapture();}else{removeEventHandler(window, "blur", this._fS);}  }};



ok!

0 0
原创粉丝点击