home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 October
/
Chip_2002-10_cd1.bin
/
internet
/
airforce
/
animate.js
next >
Wrap
Text File
|
2002-08-18
|
6KB
|
170 lines
dynamicanimAttr="dynamicanimation"
animCancel="skipanim"
fpanimationPrefix="fpAnim"
animateElements=new Array()
currentElement=0
speed=1
stepsZoom=8
stepsWord=8
stepsFly=17
stepsSpiral=16
stepsSpiralWord=19
stepsElastic=32
steps=stepsZoom
step=0
cornerPhase=0
outEffect=0
function remSuffix(str){ind=str.indexOf("FP");str=str.substring(0,ind);return str}
function dynAnimOut(el){outEffect=1;dynAnimation(el);outEffect=0}
function dynAnimation(obj){animateElements=new Array()
var ms=navigator.appVersion.indexOf("MSIE")
ie4=(ms>0) && (parseInt(navigator.appVersion.substring(ms+5,ms+6))>=4)
if(!ie4){if((navigator.appName=="Netscape") &&
(parseInt(navigator.appVersion.substring(0,1))>=4))
doc_els=document.layers
else return}
else doc_els=document.all
if(outEffect && !ie4)return
if(ie4){for (index=document.all.length-1; index>=document.body.sourceIndex; index--)
{el=document.all[index]
if(outEffect && el !=obj)continue
if(outEffect)animationId=el.id.substring(9,el.id.length)
else animationId=el.id.substring(6,el.id.length)
animation=remSuffix(animationId)
if(null !=animation){altcnt=0
if( animation=="dropWord" || animation=="flyTopRightWord"|| animation=="flyBottomRightWord" || animation=="waveWords"|| animation=="hopWords")
{ih=el.innerHTML
outString=""
i1=0
iend=ih.length
while(true){i2=startWord(ih,i1)
if(i2==-1)
i2=iend
outWord(ih,i1,i2,false,"",outEffect ? obj.id : el.id)
if(i2==iend)break
i1=i2
i2=endWord(ih,i1)
if(i2==-1)i2=iend
if (animation=="waveWords")
outWordAlt(ih,i1,i2,true,animation,altcnt)
else outWord(ih,i1,i2,true,(outEffect ? "Out" : "")+animation,
outEffect ? obj.id : el.id)
if(i2==iend)break
i1=i2
altcnt++}
document.all[index].innerHTML=outString
document.all[index].style.posLeft=0
document.all[index].setAttribute(animCancel,true)
document.all[index].style.visibility="visible"}}}}
i=0
for (index=0; index< doc_els.length; index++){el=doc_els[index]
if(0 !=el.id.indexOf(fpanimationPrefix))continue
if (ie4){elprops=el.style
scrollOffsetTop=document.body.scrollTop
docHeight=document.body.offsetHeight
docWidth=document.body.offsetWidth
elW=100
elH=el.offsetHeight}
else {elprops=el
scrollOffsetTop=window.pageYOffset
docHeight=window.innerHeight
docWidth=window.innerWidth
elW=el.clip.width
elH=el.clip.height}
if(outEffect)animationId=el.id.substring(9,el.id.length)
else animationId=el.id.substring(6,el.id.length)
animation=remSuffix(animationId)
if(outEffect && (obj !=el)){
if(el.SRCID !=obj.id)continue}
if (null !=animation ){
if(ie4 && null!=el.getAttribute(animCancel,false))continue
if(!ie4){elprops.posLeft=elprops.left
elprops.posTop=elprops.top}
el.startL=offsetLeft(el)
if(animation=="flyRight" || animation=="elasticRight"){
elprops.posLeft=-offsetLeft(el)+docWidth
elprops.posTop=0}
else if((animation.indexOf("waveWords") !=-1) || animation=="hopWords"){
if(i){prevEl=animateElements[i-1]
elprops.r=offsetLeft(el)-prevEl.startL}}
else if(animation=="wipeLR" || animation=="wipeMID"){
if (ie4 && elprops.position=="absolute"){el.sizeW=el.offsetWidth
elprops.clip="rect(0 0 0 0)"}
else if (!ie4){el.sizeW=el.clip.width
el.clip.width=0}}else{continue}
if(!outEffect){el.initLeft=elprops.posLeft
el.initTop=elprops.posTop
el.endLeft=0
el.endTop =0
elprops.visibility="hidden"}
else{el.initLeft=0
el.initTop=0
el.endLeft=elprops.posLeft
el.endTop=elprops.posTop
elprops.posTop=0
elprops.posLeft=0}
if(!ie4){elprops.left=elprops.initLeft
elprops.top=elprops.initTop}
animateElements[i++]=el}}
if(animateElements.length> 0){
if(outEffect) window.setTimeout("animate(1);",speed,"Javascript")
else window.setTimeout("animate(0);",speed,"Javascript")}}
function offsetLeft(el){if(ie4){x=el.offsetLeft
for (e=el.offsetParent; e; e=e.offsetParent)
x+=e.offsetLeft
return x}
else{x=el.pageX
return x}}
function animate(animOut){el=animateElements[currentElement]
if(animOut)animationId=el.id.substring(9,el.id.length);
else animationId=el.id.substring(6,el.id.length);animation=remSuffix(animationId)
if (ie4)elprops=el.style
else elprops=el
if(!step && !animOut)elprops.visibility="visible"
step++
if(animation=="spiral"){steps=stepsSpiral
v=step/steps
rf=1.0-v
t=v * 2.0*Math.PI
rx=Math.max(Math.abs(el.initLeft),200)
ry=Math.max(Math.abs(el.initTop),200)
elprops.posLeft=Math.ceil(-rf*Math.cos(t)*rx)
elprops.posTop=Math.ceil(-rf*Math.sin(t)*ry)}
else if(animation=="elasticRight"){steps=stepsElastic
v=step/steps
rf=Math.exp(-v*7)
t=v * 1.5*Math.PI
rx=Math.abs(el.initLeft)
elprops.posLeft=rf*Math.cos(t)*rx
elprops.posTop=0}
else if(animation=="wipeLR"){steps=stepsElastic
if(ie4 && elprops.position=="absolute")elprops.clip="rect(0 "+step/steps*100+"% 100% 0)"
else if (!ie4){elprops.clip.right=step/steps*el.sizeW}}
else if(animation=="wipeMID"){steps=stepsElastic
if(ie4 && elprops.position=="absolute"){elprops.clip="rect(0 "+el.sizeW/2*(1+step/steps)+"px 100% "+el.sizeW/2*(1-step/steps)+")"}
else if(!ie4){elprops.clip.right=el.sizeW/2*(1+step/steps)
elprops.clip.left=el.sizeW/2*(1-step/steps)}}
else{steps=stepsFly
if(animation=="dropWord" || animation=="flyTopRightWord" || animation=="flyBottomRightWord")steps=stepsWord
dl=(el.endLeft-el.initLeft) / steps
dt=(el.endTop-el.initTop) / steps
elprops.posLeft=elprops.posLeft+dl
elprops.posTop=elprops.posTop+dt}
if (step>=steps){
if(!(animation=="wipeLR" || animation=="wipeTB" || animation=="wipeMID" || (animation=="flyCorner" && !cornerPhase))){elprops.posLeft=el.endLeft
elprops.posTop=el.endTop}
if(animOut){elprops.visibility="hidden"}step=0
if(animation=="flyCorner" && !cornerPhase)cornerPhase=1
else{cornerPhase=0
currentElement++}}
if(!ie4){elprops.left=elprops.posLeft
elprops.top=elprops.posTop}
if(currentElement< animateElements.length){
if(animOut)window.setTimeout("animate(1);",speed,"Javascript")
else window.setTimeout("animate(0);",speed,"Javascript")}
else currentElement=0}