0

私はループで実行したいコードを持っていますが、それは1回しか実行されていません。

コードは次のとおりです。

var getposition = 0;
var intervalinfo ;


         function setpostion(){
             document.getElementById("join").style.position = "absolute";
             document.getElementById("join").style.left = "0px";
             document.getElementById("join").style.top = "100px"

            intervalinfo = setInterval(getanimation ,50);
             }

             function getanimation() {
                 getposition += 5;
                document.getElementById("join").style.left = getposition + "px"; 

                 if (getposition > 500) {
                    // clearInterval(intervalinfo);
                     document.getElementById("join").style.left = "0px";

                     }

                 }

    window.onload = function() {
        setTimeout(setpostion , 2000);

        }

どんな助けでも事前に本当にかなりの価値があります:-)

4

1 に答える 1

1

を取り出しますwindow.onload

スクリプトが「結合」要素の下のページにあることを確認し、使用するだけです

var getposition = 0;
var intervalinfo;


function setpostion() {
    document.getElementById("join").style.position = "absolute";
    document.getElementById("join").style.left = "0px";
    document.getElementById("join").style.top = "100px"

    intervalinfo = setInterval(getanimation, 50);
}

function getanimation() {
    getposition += 5;
    document.getElementById("join").style.left = getposition + "px";

    if (getposition > 500) {
        // clearInterval(intervalinfo);
        document.getElementById("join").style.left = "0px";

    }

}
setTimeout(setpostion, 2000);

例: http://jsfiddle.net/RobH/Nm8na/

更新 (試行 2):

ループし続けたい場合は、次のようにします。

var getposition = 0;
var intervalinfo;


function setpostion() {
    document.getElementById("join").style.position = "absolute";
    document.getElementById("join").style.left = "0px";
    document.getElementById("join").style.top = "100px"

    intervalinfo = setInterval(getanimation, 50);
}

function getanimation() {
    getposition += 5;
    document.getElementById("join").style.left = getposition + "px";

    if (getposition > 500) {
        clearInterval(intervalinfo);
        document.getElementById("join").style.left = "0px";
        getposition = 0;
        setTimeout(setpostion, 2000);
    }

}
setTimeout(setpostion, 2000);

ここでフィドル: http://jsfiddle.net/RobH/UqtAf/

于 2013-05-29T10:03:38.487 に答える