我的问题是调用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>
<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>
解决方案 »
- 如果ie设置阻止弹出窗口 onclick 调用弹出窗口正常, onkeydown调用同样的js函数就会自动关闭弹出窗口。
- jquery树形菜单加个图片会的加QQ给我讲一下
- 得到<select> 标签的name属性
- 请问如何用js取得其他页面post过来的参数?
- 一个关于 JS产品分类 大类下显示小类 的问题
- opacity问题,ff上正确,ie上不行,请高手帮忙,谢谢
- 怎样从tr中获取所属 table的object?
- 写了一个js文件,函数参数需要传一个数组,请问一下,怎样传呀。
- 怎么知道showmodelessdialog打开的窗口已经关闭
- 如何使用Js 将JSON数据转换为json树数据
- 用ie浏览器,showModalDialog子窗口连续刷新父窗口2次,就出现window.dialogArguments.document为空或不是对象,怎样解决?
- 请教大家关于跑马灯的问题?
pos为全局变量,在
if(pos>=50)的时候被你pos=0;
下次调用的时候依然是执行if(pos<50)中的代码:增加一个变量,修改如下:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<script language="javascript">
var str="你好,欢迎访问我的主页";
var pos=0;
var pos2=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;
}
else
{
var showStr="你好,欢迎访问我的主页".substring(pos2++);
window.status=nullStr+showStr;
if(pos2=="你好,欢迎访问我的主页".length)
{
pos2=0;
pos=0;
}
}
setTimeout("display2()",150);
}</script>
</head>
<body onload="display2()">
</body>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<script language="javascript">var statusText="你好,欢迎访问我的主页";
var baseStr=new Array(20).join(" ");
var tmp=statusText+ new Array(statusText.length*5).join(" ");
var showAr=tmp.split("");
function display2()
{
showAr.push(showAr.shift());
window.status=baseStr + showAr.join("");
setTimeout("display2()",100);
}
</script>
</head>
<body onload="display2()">
</body>