animate.js
资源名称:Shopping.rar [点击查看]
上传用户:lsj999sz
上传日期:2022-06-15
资源大小:4717k
文件大小:14k
源码类别:
ICQ/即时通讯
开发平台:
Java
- <!--
- // See KB article about changing this dynamic HTML
- 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 == "flyLeft")
- {
- elprops.posLeft = -offsetLeft(el)-elW
- elprops.posTop = 0
- }
- else if(animation == "flyRight" || animation=="elasticRight")
- {
- elprops.posLeft = -offsetLeft(el)+docWidth
- elprops.posTop = 0
- }
- else if(animation == "flyTop" || animation == "dropWord")
- {
- elprops.posLeft = 0
- elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
- }
- else if(animation == "flyBottom" || animation == "elasticBottom")
- {
- elprops.posLeft = 0
- elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
- }
- else if(animation == "flyTopLeft")
- {
- elprops.posLeft = -offsetLeft(el)-elW
- elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
- }
- else if(animation == "flyTopRight" || animation == "flyTopRightWord")
- {
- elprops.posLeft = -offsetLeft(el)+docWidth
- elprops.posTop = scrollOffsetTop-offsetTop(el)-elH
- }
- else if(animation == "flyCorner")
- {
- elprops.posLeft = docWidth*0.2-offsetLeft(el)
- elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
- }
- else if(animation == "flyBottomLeft")
- {
- elprops.posLeft = -offsetLeft(el)-elW
- elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
- }
- else if(animation == "flyBottomRight" || animation == "flyBottomRightWord")
- {
- elprops.posLeft = -offsetLeft(el)+docWidth
- elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
- }
- else if(animation == "spiral")
- {
- elprops.posLeft = -offsetLeft(el)+docWidth
- elprops.posTop = scrollOffsetTop-offsetTop(el)+docHeight
- }
- else if((animation.indexOf("waveWords") != -1) || animation=="hopWords")
- {
- if(i)
- {
- prevEl=animateElements[i-1]
- elprops.r = offsetLeft(el)-prevEl.startL
- }
- else
- elprops.r = offsetLeft(el)
- }
- 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 if(animation == "wipeTB")
- {
- if (ie4 && elprops.position=="absolute")
- {
- elprops.clip="rect(0 0 0 0)"
- }
- else if(!ie4)
- {
- el.sizeH=el.clip.height
- el.clip.height=0
- }
- }
- else if(animation == "zoomIn")
- {
- elprops.posLeft = 0
- elprops.posTop = 0
- }
- else if(animation == "zoomOut")
- {
- elprops.posLeft = 0
- elprops.posTop = 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 offsetTop(el)
- {
- if(ie4)
- {
- y = el.offsetTop
- for (e = el.offsetParent; e; e = e.offsetParent)
- y += e.offsetTop;
- return y
- }
- else
- {
- y = el.pageY
- return y
- }
- }
- function startWord(ih, i)
- {
- for(tag = false; i < ih.length; i++)
- {
- c = ih.charAt(i)
- if(c == '<')
- {
- if(ih.substring(i+1, i+4) == "IMG")
- return i;
- tag = true
- }
- if(!tag)
- return i
- if(c == '>')
- tag = false
- }
- return -1
- }
- function endWord(ih, i)
- {
- nonSpace = false
- space = false
- img = false
- if(ih.charAt(i) == '<')
- {
- img = true
- i++;
- }
- while(i < ih.length)
- {
- c = ih.charAt(i)
- if(c != ' ')
- nonSpace = true
- if(img && c == '>')
- img = false;
- if(nonSpace && !img && c == ' ')
- space = true
- if(c == '<')
- return i
- if(space && c != ' ')
- return i
- i++
- }
- return -1
- }
- function outWord(ih, i1, i2, dyn, anim, srcID)
- {
- if(dyn)
- if(!outEffect)
- outString += "<SPAN ID="" + fpanimationPrefix + anim + "FP" style="position: relative; visibility: hidden;">"
- else
- outString += "<SPAN SRCID="" + srcID + ""ID="" + fpanimationPrefix + anim + "FP" style="position: relative;">"
- outString += ih.substring(i1, i2)
- if(dyn)
- outString += "</SPAN>"
- }
- function outWordAlt(ih, i1, i2, dyn, anim, altcnt)
- {
- if(dyn)
- {
- if(altcnt%2)
- outString += "<SPAN ID="" + fpanimationPrefix + anim + "LFP" style="position: relative; visibility: hidden;">"
- else
- outString += "<SPAN ID="" + fpanimationPrefix + anim + "RFP" style="position: relative; visibility: hidden;">"
- }
- outString += ih.substring(i1, i2)
- if(dyn)
- outString += "</SPAN>"
- }
- 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 == "waveWordsL" || animation=="hopWords" || animation == "waveWords")
- {
- steps = stepsSpiralWord
- v = step/steps
- rf = (1.0 - v)
- t = v * 1.0*Math.PI
- elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
- elprops.posTop = Math.ceil(-rf*Math.sin(t)*elprops.r)
- }
- else if(animation == "waveWordsR")
- {
- steps = stepsSpiralWord
- v = step/steps
- rf = (1.0 - v)
- t = v * 1.0*Math.PI
- elprops.posLeft = Math.ceil(-rf*Math.cos(t)*elprops.r)
- elprops.posTop = Math.ceil( rf*Math.sin(t)*elprops.r)
- }
- else if(animation == "zoomIn")
- {
- steps = stepsZoom
- elprops.fontSize = Math.ceil(50+50*step/steps) + "%"
- elprops.posLeft = 0
- }
- else if(animation == "zoomOut")
- {
- steps = stepsZoom
- fontSz=Math.ceil(100+200*(steps-step)/steps) + "%"
- elprops.fontSize = fontSz
- elprops.posLeft = 0
- }
- 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 == "elasticBottom")
- {
- steps = stepsElastic
- v = step/steps
- rf=Math.exp(-v*7)
- t = v * 2.5*Math.PI
- ry =Math.abs(el.initTop)
- elprops.posLeft = 0
- elprops.posTop = rf*Math.cos(t)*ry
- }
- 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 == "wipeTB")
- {
- steps = stepsElastic
- if(ie4 && elprops.position=="absolute")
- elprops.clip = "rect(0 100% "+step/steps*el.offsetHeight+"px 0)"
- else
- elprops.clip.bottom=step/steps*el.sizeH
- }
- 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 if(animation == "flyCorner")
- {
- if(!cornerPhase)
- {
- steps = stepsElastic/2
- v = step/steps
- rf=Math.exp(-v*7)
- t = v * 2.5*Math.PI
- ry =Math.abs(el.initTop)
- elprops.posTop = rf*Math.cos(t)*ry
- }
- else
- {
- steps = stepsFly
- dl = el.initLeft / steps
- elprops.posLeft = elprops.posLeft - dl
- elprops.posTop = 0
- }
- }
- 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
- }
- function rollIn(el)
- {
- var ms = navigator.appVersion.indexOf("MSIE")
- ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
- if(ie4)
- {
- el.initstyle=el.style.cssText;el.style.cssText=el.fprolloverstyle
- }
- }
- function rollOut(el)
- {
- var ms = navigator.appVersion.indexOf("MSIE")
- ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
- if(ie4)
- {
- el.style.cssText=el.initstyle
- }
- }
- function clickSwapStyle(el)
- {
- var ms = navigator.appVersion.indexOf("MSIE")
- ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
- if(ie4)
- {
- ts=el.style.cssText
- el.style.cssText=el.fprolloverstyle
- el.fprolloverstyle=ts
- }
- }
- function clickSwapImg(el)
- {
- if(document.all || document.layers)
- {
- ts=el.src
- el.src=el.lowsrc
- el.lowsrc=ts
- }
- }
- //-->