让这个简单的跑马灯效果重复执行

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>runLight</title>
<script type="text/javascript">
var msg="这是一个跑马灯的效果";
var interval = 500;
var spacelen = 120;
var space10 = "          ";
var seq = 0;
var len = msg.length;
function Go(){
    if (seq>=len){
        //seq=spacelen;
        //alert(seq)
        setInterval("Scroll2()",interval);
    }else{
        //alert(seq)
        setInterval("Scroll()",interval);
    }
};
function Scroll(){
    //alert(msg)
    //window.status=msg.substring(0,seq+1);
    document.title = msg.substring(0,seq+1);
    seq++;
    if (seq>=len){Scroll2()};
};
function Scroll2(){
    var out="";
    for (i =1;i<=spacelen/space10.length;i++);
    out+=space10;
    out=out+msg;
    len = out.length;
    document.title = out.substring(seq,len);
    seq++;
    //if(seq>=len){seq=0};
    //window.setTimeout(Scroll(),interval);
};
window.onload = Go;
//alert(Scroll2());
//Scroll();
</script>
</head>

<body>
<input type="button" value="test" onclick="Scroll()"/>
</body>
</html>

修改了半天也不对,现在如果重复点击button可以让标题文字循环,怎么样才能让它自动跑起来?

阅读 4.9k
3 个回答

xieyao。首先,看不懂题主写的什么。。。自己大致写一下

function setTitle(title){
    document.title = title
}
function go(){
    var msg = "这是一个跑马灯效果";
    var space = "          ";
    var str = msg + space;
    var interval = 500;
    var t = setInterval(function(){
        var firstWord = str.slice(0, 1);
        str = str.slice(1, str.length) + firstWord;
        setTitle(str);
    }, interval)
}
window.onload = go;

设个断点,自己debug看看,Scroll不停调用Scroll2, for (i =1;i<=spacelen/space10.length;i++);不知道是干啥的

谢邀。写的什么东西。。。

手机码字,口述思路:

你想想,此刻与下一刻的字符串相差什么?其实就是将末尾的字符移到头部而已。

因此只需:

  • 开始时,用空格在字符串后填充使其到达一定长度,记为 str

  • 每个 interval,将str最后一个字符移到第一位

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题