我敢打赌,我有一个基本的问题,但我无法解决两个晚上。
我有1个“ ul”元素,但我只想让它每个e.g.移动任意数量的像素向左2秒。我希望他一步一步地移动,然后回到原来的位置并再次开始移动。
我被困住了,我的脚本只将其移动到最终位置并完成。
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秒钟后执行整个循环,但是我尝试执行以下操作:将这个元素向左移动,等待,再向左移动等等。
最佳答案
你的意思是这样吗?
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);
}