2012-02-21 69 views
2

我正在制作一款游戏,并且我正在尝试创建游戏结束功能。我将如何去重置所有图像到他们的起始位置?如何重置图像位置

+1

将其初始位置保存到http://api.jquery.com/data/并在需要时将其恢复。 – Cheery 2012-02-21 23:19:17

+0

正如Cheery所说或重新运行init()函数或重新加载页面。 – 2012-02-21 23:34:19

回答

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是正确的路径。