0

こんにちは、私はこのコードを書きました。オブジェクトをクリックした後、3000 ミリ秒ごとにオブジェクトを移動することを想定していますが、時間がうまくいかない場合があります。どうもありがとうございます

function move1() {
    var im1 = document.images[0];
    im1.onclick = function() {
        im1.style.left = parseInt(im1.style.left) + 1 + "px";
    }
}

function move2() {
    var im2 = document.images[1];
    im2.onclick = function() {
        im2.style.left = parseInt(im2.style.left) + 10 + "px";
    }
}

window.onload = function() {
    setInterval(move1, 100);
    setInterval(move2, 3000);
}
4

2 に答える 2

2

あなたはそれを逆にやっています。3000 ミリ秒ごとに、クリックしたときに画像を 1 ピクセル移動できるようにします。

function move(el, ms, px) {
/* moves the el every ms by px
returns the interval id to clear the movement */
    return setInterval(function() {
        el.style.left = parseInt(el.style.left) + px + "px";
    }, ms);
}
window.onload = function() {
    var im0 = document.images[0];
    var im1 = document.images[1];
    im0.onclick = function() {
        move(im0, 100, 1);
    };
    im1.onclick = function() {
        move(im1, 3000, 10);
    };
}
于 2012-05-21T00:03:38.117 に答える
0

移動機能はクリック時に画像を登録しますが、ユーザーがクリックするまで実際には移動しません。あなたが望むのは、次のようなものです:

function move1() {
    var im1 = document.images[0];
    im1.style.left = parseInt(im1.style.left) + 1 + "px";
}

function move2() {
    var im2 = document.images[1];
    im2.style.left = parseInt(im2.style.left) + 10 + "px";
}

window.onload = function() {
    var im2 = document.images[1];
    im2.onclick = function() {
        setInterval(move2, 3000);
    }

    im1.onclick = function() {
        setInterval(move1, 100);
    }
}
于 2012-05-20T23:56:36.853 に答える