纯菜鸟一枚,刚接触js,写了一段脚本,目的是为了实现图片自动轮显。代码如下:<div id="slideContainer"> <div id="imgContainer">
<ul>
<li><img src="1.jpg" alt="" width="800" /></li>
<li><img src="2.jpg" alt="" width="800" /></li>
<li><img src="3.jpg" alt="" width="800" /></li>
<li><img src="4.jpg" alt="" width="800" /></li>
</ul>
</div> <ul id="number">
<li >1</li>
<li >2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
function addLoadEvent(func){
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function(){
oldonload();
func();
}
}
}function finalMove(){
var imgContainer=document.getElementById("imgContainer");
imgContainer.style.marginLeft="0px";
setTimeout("move()",5000);
}function move(){
var imgContainer=document.getElementById("imgContainer"); var nowMl=parseInt(imgContainer.style.marginLeft); var integer=parseInt(nowMl/800); var targetMl=(integer-1)*800; if(nowMl>targetMl){
nowMl=nowMl-8;
imgContainer.style.marginLeft=nowMl+"px";
}
if(nowMl==targetMl){
imgContainer.style.marginLeft=nowMl+"px";
return true;
} setTimeout("move()",100);
}addLoadEvent(finalMove);问题:如代码所示,原本是想最终每隔5秒向左滑动800,结果只滑动了一次,即margin-left:800px的时候就停下没有反应了。
Why?Why?Why? 望高手指点 谢谢先了
<ul>
<li><img src="1.jpg" alt="" width="800" /></li>
<li><img src="2.jpg" alt="" width="800" /></li>
<li><img src="3.jpg" alt="" width="800" /></li>
<li><img src="4.jpg" alt="" width="800" /></li>
</ul>
</div> <ul id="number">
<li >1</li>
<li >2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
function addLoadEvent(func){
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function(){
oldonload();
func();
}
}
}function finalMove(){
var imgContainer=document.getElementById("imgContainer");
imgContainer.style.marginLeft="0px";
setTimeout("move()",5000);
}function move(){
var imgContainer=document.getElementById("imgContainer"); var nowMl=parseInt(imgContainer.style.marginLeft); var integer=parseInt(nowMl/800); var targetMl=(integer-1)*800; if(nowMl>targetMl){
nowMl=nowMl-8;
imgContainer.style.marginLeft=nowMl+"px";
}
if(nowMl==targetMl){
imgContainer.style.marginLeft=nowMl+"px";
return true;
} setTimeout("move()",100);
}addLoadEvent(finalMove);问题:如代码所示,原本是想最终每隔5秒向左滑动800,结果只滑动了一次,即margin-left:800px的时候就停下没有反应了。
Why?Why?Why? 望高手指点 谢谢先了
解决方案 »
- 怎样运用javascript向串口发送数据 如字符串
- 请问文章生成了静态Html页面,如何实现对文章的评论?
- 求助 javascript入门教程
- 内部js 和外部js 还有不同的运行权限??
- 一个教难的问题,想了半天没得到方法,请大家来谈论并指教下。。。。。。
- 各位!Listbox的选择
- 谁知道像这网站里会伸缩的栏目树形导航是怎么做的 http://www.ie-china.com/Photo/Index.html
- 启用提交按钮,并让其获得焦点????
- 怎么使页面上所有的checkbox全部选中?谢谢!
- 当关闭窗口IE 的时候怎么记录用户退出的时间?怎么来触发这个事件?我的页面有FRAME。有Header,Footer,Body?
- 大量连接字串使用+=快还是join快?
- iframe从只页面给父页面的控件赋值
imgContainer.style.marginLeft=nowMl+"px";
return true;
}你return了。没有再 setTimeout("move()",100);
所以结束了。改成:
if(nowMl>=targetMl){
imgContainer.style.marginLeft="0px";
}
imgContainer.style.marginLeft=nowMl+"px";
return true;
}
setTimeout("move()",100);
是不是被执行了这个if语句,结束了循环,否则的话,应该是要每0.1秒(这个时间真短)调用一次move函数的var nowMl=parseInt(imgContainer.style.marginLeft);不知道第一次执行的时候,这个应该值为0吧,是这样的吧?
window.clearInterval(intervalId);//停止循环函数
ps:贴代码的时候,css部分忘了贴出来。现在看来,这个样式大家都不用看的哈~~