从天上掉下来的文字,Js特效

  • 从天上掉下来的字符,超棒的JavaScript文字特效,这款动画的形式其实超不错,以前在学Flash的时候,经常喜欢做这种文字效果,用Js实现的借得借鉴,不过代码有点多,有些朋友会不喜欢哦。

点击(此处)折叠或打开

  1. <html>
  2. <head>
  3. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
  4. <title>石家庄水泵厂</title>
  5. </head>
  6. <body>
  7. <p www_helpor_net=\"dropWord\" style=\"position: relative !important; left: 10000 !important\" align=\"center\"><font size=\"3\" color=\"#ee00FF\">我从天而来,是神仙,有什么事可以找我!</font><font size=\"7\" face=\"Arial\" color=\"#FF0000\"><b>YES!</b></font></p>
  8. <SCRIPT language=\"JavaScript\">
  9. <!--
  10. dynamicanimAttr = \"www_helpor_net\"
  11. animateElements = new Array()
  12. currentElement = 0
  13. speed = 0
  14. stepsZoom = 8
  15. stepsWord = 8
  16. stepsFly = 12
  17. stepsSpiral = 16
  18. steps = stepsZoom
  19. step = 0
  20. outString = \"\"
  21. function helpor_net()
  22. {
  23. var ms = navigator.appVersion.indexOf(\"MSIE\")
  24. ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
  25. if(!ie4)
  26. {
  27. if((navigator.appName == \"Netscape\") &&
  28. (parseInt(navigator.appVersion.substring(0, 1)) >= 4))
  29. {
  30. for (index=document.layers.length-1; index >= 0; index--)
  31. {
  32. layer=document.layers[index]
  33. if (layer.left==10000)
  34. layer.left=0
  35. }
  36. }
  37. return
  38. }
  39. for (index=document.all.length-1; index >= document.body.sourceIndex; index--)
  40. {
  41. el = document.all[index]
  42. animation = el.getAttribute(dynamicanimAttr, false)
  43. if(null != animation)
  44. {
  45. if(animation == \"dropWord\" || animation == \"flyTopRightWord\" || animation == \"flyBottomRightWord\")
  46. {
  47. ih = el.innerHTML
  48. outString = \"\"
  49. i1 = 0
  50. iend = ih.length
  51. while(true)
  52. {
  53. i2 = startWord(ih, i1)
  54. if(i2 == -1)
  55. i2 = iend
  56. outWord(ih, i1, i2, false, \"\")
  57. if(i2 == iend)
  58. break
  59. i1 = i2
  60. i2 = endWord(ih, i1)
  61. if(i2 == -1)
  62. i2 = iend
  63. outWord(ih, i1, i2, true, animation)
  64. if(i2 == iend)
  65. break
  66. i1 = i2
  67. }
  68. document.all[index].innerHTML = outString
  69. document.all[index].style.posLeft = 0
  70. document.all[index].setAttribute(dynamicanimAttr, null)
  71. }
  72. if(animation == \"zoomIn\" || animation == \"zoomOut\")
  73. {
  74. ih = el.innerHTML
  75. outString = \"\"
  76. outString += ih
  77. outString += \"\"
  78. document.all[index].innerHTML = outString
  79. document.all[index].style.posLeft = 0
  80. document.all[index].setAttribute(dynamicanimAttr, null)
  81. }
  82. }
  83. }
  84. i = 0
  85. for (index=document.body.sourceIndex; index < document.all.length; index++)
  86. {
  87. el = document.all[index]
  88. animation = el.getAttribute(dynamicanimAttr, false)
  89. if (null != animation)
  90. {
  91. if(animation == \"flyLeft\")
  92. {
  93. el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
  94. el.style.posTop = 0
  95. }
  96. else if(animation == \"flyRight\")
  97. {
  98. el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
  99. el.style.posTop = 0
  100. }
  101. else if(animation == \"flyTop\" || animation == \"dropWord\")
  102. {
  103. el.style.posLeft = 0
  104. el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
  105. }
  106. else if(animation == \"flyBottom\")
  107. {
  108. el.style.posLeft = 0
  109. el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
  110. }
  111. else if(animation == \"flyTopLeft\")
  112. {
  113. el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
  114. el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
  115. }
  116. else if(animation == \"flyTopRight\" || animation == \"flyTopRightWord\")
  117. {
  118. el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
  119. el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
  120. }
  121. else if(animation == \"flyBottomLeft\")
  122. {
  123. el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
  124. el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
  125. }
  126. else if(animation == \"flyBottomRight\" || animation == \"flyBottomRightWord\")
  127. {
  128. el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
  129. el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
  130. }
  131. else if(animation == \"spiral\")
  132. {
  133. el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
  134. el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
  135. }
  136. else if(animation == \"zoomIn\")
  137. {
  138. el.style.posLeft = 10000
  139. el.style.posTop = 0
  140. }
  141. else if(animation == \"zoomOut\")
  142. {
  143. el.style.posLeft = 10000
  144. el.style.posTop = 0
  145. }
  146. else
  147. {
  148. el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
  149. el.style.posTop = 0
  150. }
  151. el.initLeft = el.style.posLeft
  152. el.initTop = el.style.posTop
  153. animateElements[i++] = el
  154. }
  155. }
  156. window.setTimeout(\"animate();\", speed)
  157. }
  158. function offsetLeft(el)
  159. {
  160. x = el.offsetLeft
  161. for (e = el.offsetParent; e; e = e.offsetParent)
  162. x += e.offsetLeft;
  163. return x
  164. }
  165. function offsetTop(el)
  166. {
  167. y = el.offsetTop
  168. for (e = el.offsetParent; e; e = e.offsetParent)
  169. y += e.offsetTop;
  170. return y
  171. }
  172. function startWord(ih, i)
  173. {
  174. for(tag = false; i < ih.length; i++)
  175. {
  176. c = ih.charAt(i)
  177. if(c == \'
  178. tag = true
  179. if(!tag)
  180. return i
  181. if(c == \'>\')
  182. tag = false
  183. }
  184. return -1
  185. }
  186. function endWord(ih, i)
  187. {
  188. nonSpace = false
  189. space = false
  190. while(i < ih.length)
  191. {
  192. c = ih.charAt(i)
  193. if(c != \' \')
  194. nonSpace = true
  195. if(nonSpace && c == \' \')
  196. space = true
  197. if(c == \'
  198. return i
  199. if(space && c != \' \')
  200. return i
  201. i++
  202. }
  203. return -1
  204. }
  205. function outWord(ih, i1, i2, dyn, anim)
  206. {
  207. if(dyn)
  208. outString += \"\"
  209. outString += ih.substring(i1, i2)
  210. if(dyn)
  211. outString += \"\"
  212. }
  213. function animate()
  214. {
  215. el = animateElements[currentElement]
  216. animation = el.getAttribute(dynamicanimAttr, false)
  217. step++
  218. if(animation == \"spiral\")
  219. {
  220. steps = stepsSpiral
  221. v = step/steps
  222. rf = 1.0 - v
  223. t = v * 2.0*Math.PI
  224. rx = Math.max(Math.abs(el.initLeft), 200)
  225. ry = Math.max(Math.abs(el.initTop), 200)
  226. el.style.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
  227. el.style.posTop = Math.ceil(-rf*Math.sin(t)*ry)
  228. }
  229. else if(animation == \"zoomIn\")
  230. {
  231. steps = stepsZoom
  232. el.style.fontSize = Math.ceil(50+50*step/steps) + \"%\"
  233. el.style.posLeft = 0
  234. }
  235. else if(animation == \"zoomOut\")
  236. {
  237. steps = stepsZoom
  238. el.style.fontSize = Math.ceil(100+200*(steps-step)/steps) + \"%\"
  239. el.style.posLeft = 0
  240. }
  241. else
  242. {
  243. steps = stepsFly
  244. if(animation == \"dropWord\" || animation == \"flyTopRightWord\" || animation == \"flyBottomRightWord\")
  245. steps = stepsWord
  246. dl = el.initLeft / steps
  247. dt = el.initTop / steps
  248. el.style.posLeft = el.style.posLeft - dl
  249. el.style.posTop = el.style.posTop - dt
  250. }
  251. if (step >= steps)
  252. {
  253. el.style.posLeft = 0
  254. el.style.posTop = 0
  255. currentElement++
  256. step = 0
  257. }
  258. if(currentElement < animateElements.length)
  259. window.setTimeout(\"animate();\", speed)
  260. }
  261. helpor_net()
  262. //--&gt
  263. </SCRIPT>
  264. </body>
  265. </html>


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29737856/viewspace-1245446/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29737856/viewspace-1245446/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值