Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSJSON保存许多div的当前状态_Javascript_Jquery_Json - Fatal编程技术网

Javascript JSJSON保存许多div的当前状态

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 在盯着我的代码看了几个小时之

我正在用很多div.persons.otherobjects在屏幕上做一个模拟,并用动画随机移动

我必须能够将模拟的当前状态保存在一个JSON数组中并加载这个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;这将是相同的结果,因此它们是随机的--