JavaScript 拖拉缩放效果
2010-09-14 13:27:46 来源:WEB开发网RepairLeft:left修正(用于以下边为固定点定位);
RepairHeight:高度修正;
RepairWidth:宽度修正。
如果没有设置最小范围限制,当缩放超过定位边时就会自动转向,例如右边缩放,左边定位,当拖动到左边定位的左边时,就会切换成左边缩放,右边定位,而这个切换是在转向程序中进行的。
转向程序包括几个部分:
TurnRight:右转程序;
TurnLeft:左转程序;
TurnUp:上转程序;
TurnDown:下转程序。
基本结构了解后,下面就开始介绍程序细节。
【最小范围限制】
最小范围限制就是限制缩放的宽和高,程序中把Min设为true,就可以通过minWidth和minHeight属性进行限制。
单是限制很简单,只要超过限制就把值设成限制值就行了,这个主要是在修正程序RepairHeight和RepairWidth中修正:
例如RepairWidth中:
iWidth = Math.max(this.Min ? this.minWidth : iWidth, iWidth, 0);
注意这里带了个0,保证最小值大于等于0。
【最大范围限制】
最大范围限制,复杂一点,是固定一个(矩形)范围,然后把缩放限制在范围内。
这个范围限制跟拖放效果的类似,有四个范围属性:上(mxTop)、下(mxBottom)、左(mxLeft)、右(mxRight)。
程序中把Max设为true就可以设置。
然后根据这四个范围属性设置四个范围参数,_mxRightWidth、_mxDownHeight、_mxUpHeight和_mxLeftWidth。
这四个围参数代表的是相对于定位边的最大宽度或高度,例如_mxRightWidth就是当右边缩放时(左边固定),宽度可以设置的最大值:
this._mxRightWidth=Math.max(mxRight-this._styleLeft-this._borderX,this.Min?this.minWidth:0);
Tags:JavaScript 拖拉 缩放
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接