Javascript JSJSON保存许多div的当前状态
我正在用很多div.persons.otherobjects在屏幕上做一个模拟,并用动画随机移动 我必须能够将模拟的当前状态保存在一个JSON数组中并加载这个JSON数组,加载后,元素应该从停止的地方继续它们的动画Javascript JSJSON保存许多div的当前状态,javascript,jquery,json,Javascript,Jquery,Json,我正在用很多div.persons.otherobjects在屏幕上做一个模拟,并用动画随机移动 我必须能够将模拟的当前状态保存在一个JSON数组中并加载这个JSON数组,加载后,元素应该从停止的地方继续它们的动画 var json = JSON.stringify($('.person')); 要对人员数组进行字符串化,但我得到了错误: Uncaught TypeError: Converting circular structure to JSON 在盯着我的代码看了几个小时之
var json = JSON.stringify($('.person'));
要对人员数组进行字符串化,但我得到了错误:
Uncaught TypeError: Converting circular structure to JSON
在盯着我的代码看了几个小时之后,我已经没有主意了
此外,我不确定将它们放入数组并转换为JSON是否会使它们在加载回时保留动画
任何评论、想法和建议都将不胜感激。您想要这样的结构:
var json = {
"div1" : { top: 212, left: 386 },
"div2" : { top: 40, left: 166 },
"div3" : { top: 20, left: 218 }
}
每个部门都需要有自己的ID,否则,您如何识别他们并将他们的位置还给他们
以下是构建json的方法:
var json = {};
$('.person').each( function(){
json[ $(this).attr('id') ] = $(this).position();
})
下面是如何在加载时恢复div的位置:
$.each( json, function( id, position ){
$("#"+id).css({ 'top' : position.top , 'left' : position:left })
});
这有意义吗
然而,保存动画方向和速度、轨迹等的精确状态似乎困难得多。尤其是如果动画是随机的…您希望保存$'.person'.offset或$'.person'.position。也就是说,div的坐标。那么当我再次加载它时,我不会有他的id、动画、名称等,没有办法保存对象吗?保留它们的动画到底是什么意思?您将需要创建自己的状态保存对象,其复杂程度取决于对象。如果我的div为500500,并将朝800800移动,则我保存。然后当我加载时,它应该在500500,并向800800移动。所以我想保存动画,它必须在某种队列中,我在这里不知道:好吧,当你启动你的随机动画时,你肯定会随机化坐标。比如randomDestinationX=Math.rand之类的。所以你得到了你的到达坐标,不是吗?只需将它们与当前坐标一起保存。是的,我也有我的目的地,但还有速度,我必须计算我的div与原始位置的距离,以及结束位置,以获得动画其余部分的正确速度,我只是希望有一种更简单的方法来实现这一点,xDI刚刚意识到,因为它们是随机移动的,所以我可以加载它们并调用moveRandom;这将是相同的结果,因此它们是随机的--