从天而降的文字,文字掉落效果

  • 从天而降的文字,文字掉落效果,文字(字符)一个个从网页顶部向下落下来,最终形成一句话。一款基于JavaScript文字特效,效果挺流畅的JavaScript文字掉落特效。
<html>
<head>
<title>从天而降的文字</title>
<script language=JavaScript>
  dynamicanimAttr = "dynamicanimation"
  animateElements = new Array()
  currentElement = 0
  speed = 0
  stepsZoom = 8
  stepsWord = 16
  stepsFly = 12
  stepsSpiral = 16
  steps = stepsZoom
  step = 0
  outString = ""
  function dynAnimation()
  { 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))
      {  for (index=document.layers.length-1; index >= 0; index--)
        {   layer=document.layers[index]
            if (layer.left==10000)
                layer.left=0}}
      return    }
    for (index=document.all.length-1; index >= document.body.sourceIndex; index--)
    { el = document.all[index]
      animation = el.getAttribute(dynamicanimAttr, false)
      if(null != animation)
      { if(animation == "dropWord")
        { 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, "")
            if(i2 == iend)
              break
            i1 = i2
            i2 = endWord(ih, i1)
            if(i2 == -1)
              i2 = iend
            outWord(ih, i1, i2, true, animation)
            if(i2 == iend)
              break
            i1 = i2}
          document.all[index].innerHTML = outString
          document.all[index].style.posLeft = 0
          document.all[index].setAttribute(dynamicanimAttr, null)}
        if(animation == "zoomIn" || animation == "zoomOut")
        { ih = el.innerHTML
          outString = "<SPAN " + dynamicanimAttr + "=\"" + animation + "\" style=\"position: relative; left: 10000;\">"
          outString += ih
          outString += "</SPAN>"
          document.all[index].innerHTML = outString
          document.all[index].style.posLeft = 0
          document.all[index].setAttribute(dynamicanimAttr, null) }}}
    i = 0
    for (index=document.body.sourceIndex; index < document.all.length; index++)
    { el = document.all[index]
      animation = el.getAttribute(dynamicanimAttr, false)
      if (null != animation)
      { if(animation == "flyLeft")
        { el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = 0}
        else if(animation == "flyRight")
        { el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
          el.style.posTop = 0}
        else if(animation == "flyTop" || animation == "dropWord")
        { el.style.posLeft = 0
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight}
        else if(animation == "flyBottom")
        { el.style.posLeft = 0
          el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight}
        else if(animation == "flyTopLeft")
        { el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight}
        else if(animation == "flyTopRight" || animation == "flyTopRightWord")
        { el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight}
        else if(animation == "flyBottomLeft")
        { el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight}
        else if(animation == "flyBottomRight" || animation == "flyBottomRightWord")
        { el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight}
           else if(animation == "spiral")
        { el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight}
        else if(animation == "zoomIn")
        { el.style.posLeft = 10000
          el.style.posTop = 0}
        else if(animation == "zoomOut")
        { el.style.posLeft = 10000
          el.style.posTop = 0}
        else
        { el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
          el.style.posTop = 0}
        el.initLeft = el.style.posLeft
        el.initTop = el.style.posTop
        animateElements[i++] = el}}
    window.setTimeout("animate();", speed)}
  function offsetLeft(el)
  {   x = el.offsetLeft
    for (e = el.offsetParent; e; e = e.offsetParent)
      x += e.offsetLeft;
    return x}
  function offsetTop(el)
  { y = el.offsetTop
    for (e = el.offsetParent; e; e = e.offsetParent)
      y += e.offsetTop;
    return y}
  function startWord(ih, i)
  { for(tag = false; i < ih.length; i++)
    { c = ih.charAt(i)
      if(c == ‘<‘)
        tag = true
      if(!tag)
        return i
      if(c == ‘>‘)
        tag = false}
    return -1}
  function endWord(ih, i)
  { nonSpace = false
    space = false
    while(i < ih.length)
    {   c = ih.charAt(i)
      if(c != ‘ ‘)
        nonSpace = true
      if(nonSpace && c == ‘ ‘)
        space = true
      if(c == ‘<‘)
        return i
      if(space && c != ‘ ‘)
        return i
      i++}
    return -1}
  function outWord(ih, i1, i2, dyn, anim)
  {  if(dyn)
     outString += "<SPAN " + dynamicanimAttr + "=\"" + anim + "\" style=\"position: relative; left: 10000;\">"
    outString += ih.substring(i1, i2)
    if(dyn)
      outString += "</SPAN>"}
  function animate()
  { el = animateElements[currentElement]
    animation = el.getAttribute(dynamicanimAttr, false)
    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)
      el.style.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
      el.style.posTop  = Math.ceil(-rf*Math.sin(t)*ry)}
    else if(animation == "zoomIn")
    { steps = stepsZoom
      el.style.fontSize = Math.ceil(50+50*step/steps) + "%"
      el.style.posLeft = 0}
    else if(animation == "zoomOut")
    { steps = stepsZoom
      el.style.fontSize = Math.ceil(100+200*(steps-step)/steps) + "%"
      el.style.posLeft = 0}
    else
    { steps = stepsFly
      if(animation == "dropWord")
        steps = stepsWord
      dl = el.initLeft / steps
      dt = el.initTop  / steps
      el.style.posLeft = el.style.posLeft - dl
      el.style.posTop = el.style.posTop - dt}
    if (step >= steps)
    { el.style.posLeft = 0
      el.style.posTop = 0
      currentElement++
      step = 0}
    if(currentElement < animateElements.length)
      window.setTimeout("animate();", speed)
}
</script>
</head>
<body onload=dynAnimation() bgcolor="#99FFCC">
<p align=center dynamicanimation="dropWord"
   style="LEFT: 10000px; POSITION: relative;
color: #FF0000;font-family:幼圆;font-size:60;">&nbsp; </p>
<p align=center dynamicanimation="dropWord"
   style="LEFT: 10000px; POSITION: relative;
color: #FF0000;font-family:幼圆;font-size:60;"><font size="5" color="#0066FF">很
  不 错 的 标 题 效 果 ,试 试 吧 ! </font></p>
<hr>
<br><br><br><br><br><br><br><br>
</body>
</html>

从天而降的文字,文字掉落效果

时间: 2024-11-08 05:12:08

从天而降的文字,文字掉落效果的相关文章

css实现漂亮的文字滑动折叠效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

CSS3实现文字扫光效果

本篇文章由:http://xinpure.com/css3-text-light-sweep-effect/ CSS3 实现的文字扫光效果,几乎可以和 Flash 相媲美了 效果解析 我们分析一下实现这个效果需要实现的功能: 实现一个扫光背景块,因为光是移动的,所以要加入渐变效果 (例如: 手电筒照射的一小块区域) 将扫光背景块控制到文本上 (即实现文本背景) 实现扫光动画 (扫光块从左往右循环移动) 思路理清了,接下来就是一步一步实现了 背景渐变 -webkit-linear-gradient

css实现鼠标经过导航文字偏位效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

发布一个文字界面库 解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果

解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果 解放文字显示处理 不要再将宝贵时间浪费在文字显示处理上,几分钟使您的文字显示呈现多彩效果 示例 :在对话框CStatic控件上,显示一段文字信息: 代码: shuhuaDLL使用说明: 对话框程序中添加VIEW视图: 对话框上放一个文本控件CStatic IDC_STATIC ,用此控件承载VIEW视图. 第一步:在对话框头文件中听见DLL头文件 #include "shuhuaDll\Factory.h" //添加视图头文件

android按钮被点击文字颜色变化效果

有的时候做应用需要点击按钮时文字颜色也跟着变,松开后又还原,目前发现两种解决方案:第一用图片,如果出现的地方比较多,那么图片的量就相当可观:第二,也就是本文讲到的.废话少说,先贴图片,再上代码. 正常效果: 按下效果: 先在values目录创建color.xml文件,在里面加入以下自定义颜色(注意不是用color标签)的代码: <?xml version="1.0" encoding="utf-8"?> <resources> <dra

【设置文字的粗细效果】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/css;charset=utf-8"> <titl

发布一个文字界面库 解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果

解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果 解放文字显示处理 不要再将宝贵时间浪费在文字显示处理上,几分钟使您的文字显示呈现多彩效果 示例 :在对话框CStatic控件上,显示一段文字信息: 代码: shuhuaDLL使用说明: 对话框程序中添加VIEW视图: 对话框上放一个文本控件CStatic IDC_STATIC ,用此控件承载VIEW视图. 第一步:在对话框头文件中听见DLL头文件 #include "shuhuaDll\Factory.h" //添加视图头文件

如何制作点击输入框时默认文字消失的效果

为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框.一般的输入框是怎样优化的呢?从用户体验的角度出发,简化用户使用步骤,让用户用得更方便就是提高了易用性,例如当鼠标悬浮在输入框时改变输入框颜色.自动选中输入框中的默认文字,或者点击输入框时自动清除默认内容等等. 这个效果听起来复杂,其实做起来却很简单,只要一小段javascript代码即可解决.下?面介绍一下几种效果的代码: 1.点击输入框选中内容的Html代码: <form id="form1"

鼠标悬浮标题切换显示出标题的文字和图片效果

第一种效果: HTML结构: <div class="vewinfor"> <div class="leftin_hd"> <h3>作者热文</h3> <a href="" target="_blank" class="in_more">...</a> </div> <div class="leftin_bd