注册 登录
编程论坛 JavaScript论坛

帮忙解释一下动态走马灯的算法!

悬崖之树 发布于 2013-10-28 20:37, 656 次点击
程序代码:
<body bgcolor="#fef4d9" OnLoad="stack()">
<SCRIPT LANGUAGE="JavaScript">
<!-- hide script from old browsers
var phrase = "精彩javascript特效!!!";
var lenPhrase = phrase.length;
var phraseOut = "";
var pause = 25;
var i=0;
var j=0;
var animateWidth = 20;
var position=animateWidth;
function stack() {
    if (phrase.charAt(i) != " ") {
      phraseOut = "";
      for (j=0; j<i; j++) {
        phraseOut += phrase.charAt(j);
      }
      for (j=i; j<position; j++) {
        phraseOut += " ";
      }
      phraseOut += phrase.charAt(i);
      for (j=position; j<animateWidth; j++) {
        phraseOut += " ";
      }
      window.status = phraseOut;
      if (position == i) {
        animateWidth++;
        position = animateWidth;
        i++;
      }
      else {
        position--;
      }
    }
    else {
      i++
    }
    if (i<lenPhrase) {
        setTimeout("stack()",pause);
    }
}
// end hiding contents -->
</SCRIPT>
</body>

看了一个多小时还没有看懂!

1 回复
#2
hugeannex2013-10-29 11:47
没啥算法,改算字符串的长度以达到显示,当达到原字符串长度后,再加空格加长。。。
这是状态栏的特效,新浏览器都不给改变状态栏了。理解就可以了,实际中用不上了。。。
1