JavaScript 拖拉缩放效果
2010-09-14 13:27:46 来源:WEB开发网如果只考虑最大范围限制的话,可以再修正,每次修正的范围会越来越小,没有问题。
但加上最小范围限制,就可能这边已经到了最小范围了,但另一边还在最大范围限制之外了。
这个时候就必须小心细心处理了,首先要
当两个范围限制发生冲突时,要放弃其中一个,程序中是优先考虑最大范围限制,放弃最小范围限制,这个看起来没什么但如果思想转不过来,就很容易钻入死胡同去了(经验教训T_T)。
例如根据宽度和比例Ratio已经获得了高的值iHeight,可以这样设置宽和高:
if(this.Max&&iHeight>mxHeight){
iWidth=Math.round((iHeight=mxHeight)*this.Ratio);
}elseif(this.Min&&iHeight<this.minHeight){
vartWidth=Math.round(this.minHeight*this.Ratio);
if(tWidth<mxWidth){iHeight=this.minHeight;iWidth=tWidth;}
}
说明一下这段代码:
首先判断iHeight是否超过最大值,是的话就根据最大值设置宽和高,由于优先考虑最大范围所以宽是否超过最小范围就不用再考虑了;
如果没有超过最大值,再判断是否小于最小值,是的话根据最小值和比例获取要设置的宽赋给一个临时变量tWidth,然后判断tWidth是否超过最大范围,不是的话就再设置值,否则优先原则就放弃修改。
【自动转向】
当没有设置最小范围限制,当超过改方向能设置宽高的范围就会自动转向。
转向程序中需要一个参数表示转向后要执行的缩放程序,并重新设置几个属性。
以左转程序TurnLeft为例:
_fun:设置为转向后要执行的缩放程序;
_sideRigh:设置为当前的_sideLeft,即以把右边定位左边设置成原来的左边定位坐标(形象点说就是原来是左边不动,改成右边不动);
Tags:JavaScript 拖拉 缩放
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接