改变 Clip 值的通用子程序 clipTo() 让你能重新 Clip 一个 Layer 到给定的值 function clipTo(obj,t,r,b,l) { if (ns4) { obj.clip.top = t obj.clip.right = r obj.clip.bottom = b obj.clip.left = l } else if (ie4) obj.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)" } 调用时, 你要给出 Layer 的名字和四个边的 Clip 的值, 比如 clipTo(block,0,100,100,0) clipBy() 子程序: clipBy() 可以让你相对于当前的 Clip 区域增减 Clip 的四个边 function clipBy(obj,t,r,b,l) { if (ns4) { obj.clip.top = clipValues(obj,'t') + t obj.clip.right = clipValues(obj,'r') + r obj.clip.bottom = clipValues(obj,'b') + b obj.clip.left = clipValues(obj,'l') + l } else if (ie4) obj.clip = "rect("+(this.clipValues(obj,'t')+t)+ "px "+(this.clipValues(obj,'r')+r)+"px " +Number(this.clipValues(obj,'b')+b)+"px " +Number(this.clipValues(obj,'l')+l)+"px)" } 比如你想稍微增大 right 和 bottom 边的值, 你可以 clipBy(block,0,10,5,0) 动画 Clipping (Wiping) 所谓 wiping 就是连续相对改变 clipping 区域,实际效果就变成动画效果.请看下例: function wipe1() { clipBy(block,0,5,0,0) setTimeout("wipe1()",30) } 我们还得加上个条件来停止 wiping, function wipe1() { if (clipValues(block,'r')<300) { clipBy(block,0,5,0,0) setTimeout("wipe1()",30) } } 欢迎咨询/
|