我写了一个状态栏的跑马灯,想实现在中间一段转换,但到中间空格处就不截取文字的字符串而直接跳回到最右端.
这里有两个display()和display2()方法,display()在状态栏最左端切换时是截取字符串的,而display2()想在中间位置转换,但是直接跳过了,没有截取字符串的过程!
代码如下:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<script language="javascript">
  var str="你好,欢迎访问我的主页你好,欢迎访问我的主页";
  var pos=0;  
  var nullStr="";
    for(var i=0;i<100;i++)
    {
       str=" "+str;       
    }
    for(var j=0;j<50;j++)
    {
       nullStr=nullStr+" ";
    }
 function display()
 {
    
    var showStr=str.substring(pos++);
    if(pos==str.length)
    {
      pos=0;
    }
    window.status=showStr;
    setTimeout("display()",150);
 }
 function display2()
 {
     if(pos<50)
     {
         var showStr=str.substring(pos++)
         window.status=showStr;
     }
     if(pos>=50)
     {
         pos=0;
         var showStr="你好,欢迎访问我的主页".substring(pos);
     
         window.status=nullStr+showStr; 
         pos++;  
          if(pos=="你好,欢迎访问我的主页".length)
         {
            pos=0;
         }              
     }
       setTimeout("display2()",150);
 }</script>
</head>
<body onload="display2()">
</body>

解决方案 »

  1.   

    我的问题是调用display2()方法的跑马灯,是在中间位置转换,但转换时状态栏所显示的字符串直接从右端开始,没有在中间位置将字符串"你好,欢迎访问我的主页"显示从左往右递减!而写的display()从最左端转换时有显示字符串从做往右的递减过程!请帮我看一下,是不是display2()的代码有问题?
      

  2.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    <script language="javascript">
      var str="abcdeabcde";
      var pos=0;  
             pos1=0;
      var nullStr="";
        for(var i=0;i<100;i++)
        {
           str=" "+str;       
        }
        for(var j=0;j<50;j++)
        {
           nullStr=nullStr+" ";
        }
     function display()
     {
        
        var showStr=str.substring(pos++);
        if(pos==str.length)
        {
          pos=0;
        }
        window.status=showStr;
        setTimeout("display()",50);
     }
     function display2()
     {
         if(pos<50)
         {
             var showStr=str.substring(pos++)
             window.status=showStr;
         }
         if(pos>=50)
         {
             var showStr="abcdeabcde".substring(pos1);
         
             window.status=nullStr + " " +showStr; 
             pos1++;  
              if(pos1=="abcdeabcde".length)
             {
     pos1=0;
                pos=0;
             }              
         }
           setTimeout("display2()",50);
     }</script>
    </head>
    <body onload="display2()">
    </body>
    </html>