我敢打赌,我有一个基本的问题,但我无法解决两个晚上。
我有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);
}

08-26 11:13