解决方案 »
- 为什么执行了Letf的移动,怎么把2个列表的背景都执行了?
- extjs中显示带边框的表格
- 急!急!急!急!急!javaScript sort 排序函数如何按照int类型排序
- 求改变自身窗体大小?
- 一个客户端计算的问题
- 我想问一下在javascript里的innerheigth是什么意思?
- 如何改变select下拉框的图标?我想用cursor:hand,但是发现不管用?
- 关于event
- match(/^(\d{2})(\d{2})([\s\*])(.+)$/)此句怎么解释
- 关于文本框和下拉框的对应问题,请教!
- 请教javascript弹出层返回数值的问题
- js中constructor属性的问题。
改成这样就行了<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312">
<title></title>
<style>
ul,li { display:block; margin:0; padding:0; list-style-type:none;}
img { display:block; width:255px; height:120px;}
#focus { width:255px; height:120px; overflow:hidden; position:relative; }</style>
</head><body>
<script>
window.onload = initAll;
var lis;
function movel(){
for(var i=0; i<lis.length; i++){
var thisli = lis[i];
thisli.style.left = parseInt(thisli.style.left) - 255 + "px";
if(parseInt(thisli.style.left) < 0)thisli.style.left = 255 * (lis.length - 1) + "px";
}
setTimeout("movel()",1000);
}
function initAll(){
var box = document.getElementById("focus");
lis = box.getElementsByTagName("li");
for(var i=0; i<lis.length; i++){
lis[i].style.position = "absolute";
lis[i].style.top = 0 + "px";
lis[i].style.left = 255 * i + "px";
}
movel();
}
</script><ul id="focus">
<li><img src="Black.jpg" /></li>
<li><img src="Blue.jpg" /></li>
<li><img src="Yellow.jpg" /></li>
<li><img src="Purple.jpg" /></li>
</ul>
</body>
</html>
setTimeout("movel(thisli)",1000);
改成
setTimeout(function(){
movel(thisli);
},1000);
第一种写法,thisli是最后那次那个thisli(也就是最后一个li对象)。第二种是每一个li对象。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312">
<title></title>
<style>
ul,li { display:block; margin:0; padding:0; list-style-type:none;}
img { display:block; width:255px; height:120px;}
#focus { width:255px; height:120px; overflow:hidden; position:relative; }</style>
</head><body>
<script>
window.onload = initAll;
var lis;
function movel(){
//循环lis数组中的所有元素,即循环所有图片
for(var i=0; i<lis.length; i++){
var thisli = lis[i];
//改变每一张图片的位置
thisli.style.left = parseInt(thisli.style.left) - 255 + "px";
//为了图片连续移动,当图片位置移出左边屏幕的时候,将其移到最右边
if(parseInt(thisli.style.left) < 0)thisli.style.left = 255 * (lis.length - 1) + "px";
}
//隔一秒后重新调用movel函数
setTimeout("movel()",1000);
}
function initAll(){
var box = document.getElementById("focus");
//这里跟你写的有差别,将lis定义成全局变量
lis = box.getElementsByTagName("li");
//这个你知道了,初始化图片的位置
for(var i=0; i<lis.length; i++){
lis[i].style.position = "absolute";
lis[i].style.top = 0 + "px";
lis[i].style.left = 255 * i + "px";
}
//第一次调用movel函数
movel();
}
</script><ul id="focus">
<li><img src="Black.jpg" /></li>
<li><img src="Blue.jpg" /></li>
<li><img src="Yellow.jpg" /></li>
<li><img src="Purple.jpg" /></li>
</ul>
</body>
</html>