如何重置图像位置

时间:2012-02-21 23:16:32

标签: javascript jquery

我正在制作游戏,我正在尝试创建游戏结束功能。我如何将所有图像重置为起始位置?

1 个答案:

答案 0 :(得分:1)

您可以以编程方式将图像类的所有位置存储在数组内的Object内。 然后你可以循环array恢复他们的位置。

var positions = new Array(0); //positions array

function objPos(obj){

    return({
        'obj':obj,
        'x':obj.style.left,
        'y':obj.style.top
    });
}


function savePositions(imgContainer){

    var imgs = imgContainer.getElementsByTagName('IMG');

    for(var i=0; i<imgs.length; i++){

        positions[i]=objPos( imgs[i] );

    }
}

function restoreStoredPositions(){

    for(var i=0; i<positions.length; i++){

        var img=positions[i];
        img.style.top=positions[i].y;
        img.style.left=positions[i].x;
    }
}

在初始状态下调用savePositions函数,稍后可以调用restoreStoredPositions。如果您想要持久数据,请将数组串接到JSON,然后将其存储到Cookie或HTML5 LocalStorage。

我知道这是纯粹的JS,但这只是我现在写的一个概念。 您可以调整它以使用each()和jquery选择器代替getElementBy ... 我使用了style.top而只是为了便于阅读,computedStyles是正确的路径。