日期:2014-05-16  浏览次数:20501 次

又有问题请教了,书上的代码貌似不对。
这是一个文字升降的代码,刚学javascript,按书上的代码执行后,文字一直降下去``不是来回升降的效果。
<body>
<script language=javascript>
<!--
var done=0;
var step=4;
function anim(yp,yk) {
document.all["shengjiang"].style.top=yp;
if (yp>yk) step=-4;
if (yp<20) step=4;
setTimeout('anim('+(yp+yk)+','+yk+')',35);
}
function start() {
if (done) return;
done=1;
shengjiang.style.left=11;
anim(20,100);
}
setTimeout('start()',10);

//-->
</script>
<div id=shengjiang style="position:absolute;top:-50;color:#000000;font-family:宋体;font-size:9pt;">
<p><font color="#804000">升降文字</font></p>

------解决方案--------------------
<BODY>
<script language=javascript> 
<!-- 
var done=0; 
var step=4; 
function anim(yp,yk) { 
document.all["shengjiang"].style.top=yp; 
if (yp> yk) step=-4; 
if (yp <20) step=4; 
setTimeout('anim('+(yp+step)+','+yk+')',35); 

function start() { 
if (done) return; 
done=1; 
shengjiang.style.left=11; 
anim(20,100); 

setTimeout('start()',10); 

//--> 
</script> 
<div id="shengjiang" style="position:absolute;top:-50;color:#000000;font-family:宋体;font-size:9pt;"> 
<p> <font color="#804000"> 升降文字 </font> </p> 
</BODY>
主要是那个setTimeout('anim('+(yp+yk)+','+yk+')',35); 
改成setTimeout('anim('+(yp+step)+','+yk+')',35);就行了!