window.onload = function moveUl(){
var eUl = document.getElementById('change');
var eLi = eUl.getElementsByTagName('li');
x = -300;
function move(){
for(i=0;i< eLi.length;i++){
eUl.style.marginLeft = i*x+'px';
}
}
setInterval(move,1000);
}
这是我能想到的最简单的。我知道这个脚本在1秒后执行整个循环,但我尝试做这样的事情:将此元素向左移动,等待,向左移动更多,依此类推。
答案 0 :(得分:2)
如果要滑动,则必须在每次迭代时超时。尝试编写一个单一班次的函数,然后每隔10毫秒调用一次该函数。您还可以查看像jQuery这样的Javascript库,它提供了一个很好的API来进行移动。
答案 1 :(得分:2)
你的意思是这样吗?
window.onload = function moveUl()
{
var eUl = document.getElementById('change');
var eLi = eUl.getElementsByTagName('li');
var delta = 0;
function move()
{
for(i=0;i< eLi.length;i++)
eUl.style.marginLeft = (-300*i+delta)+'px';
delta -= 100; // Prepares for the next step
if ( delta == -1000 )
delta = 0; // Resets after 10 steps
}
setInterval(move,1000);
}
答案 2 :(得分:0)
问题是你不能从你开始的地方回来吗?
为什么不在move
中添加新的for循环 for(i=eLi.length; i>0 ;i--){
eUl.style.marginLeft = i*x+'px';
}
你是否也希望它永远循环,即开始 - &gt;左 - &gt;开始 - &gt;一次又一次?