小弟遇到难题了!!

yangyangfree 2001-10-07 10:14:10
2.有这样的一段程序来实现彩虹文字的:
<HTML>
<HEAD>
<script language='javascript'>
<!----
function MakeArray(n)
{this.length=n;
for(var i=1;i<=n;i++) this[i]=i-1;
return this;
}
hex=new MakeArray(16);
hex[11]="A";hex[12]="B";hex[13]="C";hex[14]="D";hex[15]="E";hex[16]="F";
function ToHex(x)
{var high=x/16;
var s=""+high;
s=s.substring(0,2);
high=parseInt(s,10);
var left=hex[high+1];
var low=x-high*16;
s=low+"";
s=s.substring(0,2);
low=parseInt(s,10);
var right=hex[low+1];
var string=left+""+right;
return string;
}
function rainbow(text)
{text=text.substring(3,text.length-4);
color_d1=255;
mul=color_d1/text.length;
for(i=0;i<text.length;i++)
{color_d1=255*Math.sin(i/(text.length/3));
color_h1=ToHex(color_d1);
color_d2=mul*i;
color_h2=ToHex(color_d2);
document.write("<fontcolor='#FF"+color_h1+color_h2+"'>"+text.substring(i,i+1)+"</font>");
}
}
//--End Hiding Here-->
</script>
<TITLE></TITLE>
</HEAD>
<BODY bgcolor="black" text=ffffff background="back.jpg">
<center>
<font size=+2>彩虹文字: Rainbow Text</font>
<br>
这是一个彩虹文字的JavaScript,好像还很复杂.<br>
不支持中文,以后改进<br>
<hr width=75%>
<script language='javascript'>
<!--
{rainbow("-->This is a Javascript example for rainbow text<!_");}
//-->
</script><br>
</body>
</HTML>

本人不明白的地方:其中的35行的:document.write("<font color='#FF"+color_h1+color_h2+"'>"+text.substring(i,i+1)+"</font>");既然color_h1和color_h2都为STRING,那么FF直接与它们相加就可以了,即是"<font color=FF+color_h1+color_h2>"就可以了,但是却实现不了彩虹文字,但为何作者却写成"<font color='#FF"+color_h1+color_h2+"'>"就能实现彩虹文字?不明白'#FF"+color_h1+color_h2+"'中里面的单引号和又引号为何要这样用?
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
snwcwt 2001-10-08
  • 打赏
  • 举报
回复
你在函数后面加下面两句话看看运行结果吧:
alert("<font color='#FF"+color_h1+color_h2+"'>"+text.substring(i,i+1)+"</font>");


alert("<font color='#FF+color_h1+color_h2+'>"+text.substring(i,i+1)+"</font>");

这样应该就比较直观了吧。
snwcwt 2001-10-07
  • 打赏
  • 举报
回复
color_h1和color_h2是变量啊。
不要单引号一样也可以用的。单引号的作用只是HTML代码里面的那个引号而已。
这个也太长了点,根据你的代码改的:

<HTML>
<HEAD>
<script language='javascript'>
<!----
function rainbow(text)
{
color_d1 = 255;
mul = color_d1/text.length;
for(i=0;i<text.length;i++)
{
color_d1 = 255*Math.sin(i/(text.length/3));
color_d2 = mul*i;
document.write("<font color='rgb(255,"+color_d1+","+color_d2+")'>"+text.substring(i,i+1)+"</font>");
}
}
//--End Hiding Here-->
</script>
<TITLE></TITLE>
</HEAD>
<BODY bgcolor="black" text=ffffff background="back.jpg">
<center>
<font size=+2>彩虹文字: Rainbow Text</font>
<br>
这是一个彩虹文字的JavaScript,好像还很复杂.<br>
不支持中文,以后改进<br>
<hr width=75%>
<script language='javascript'>
<!--
rainbow("This is a Javascript example for rainbow text.");
//-->
</script><br>
</body>
</HTML>
效果一样

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧