Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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
如何基于json数据在Javascript中为网页上的多个对象设置动画?_Javascript_Animation_Reactjs - Fatal编程技术网

如何基于json数据在Javascript中为网页上的多个对象设置动画?

如何基于json数据在Javascript中为网页上的多个对象设置动画?,javascript,animation,reactjs,Javascript,Animation,Reactjs,我有一些json,大致如下 { "user1": [{"distance": 1, "pace": 100 }, {"distance": 4, "pace": 120}, {"distance": 9, "pace": 110}], "user2": [{"distance": 1, "pace": 110 }, {"distance": 7, "pace": 130}, {"distance": 14, "pace": 140}], } 总共有30个用户,每个用户最多有50

我有一些json,大致如下

{
    "user1": [{"distance": 1, "pace": 100 }, {"distance": 4, "pace": 120}, {"distance": 9, "pace": 110}],
    "user2": [{"distance": 1, "pace": 110 }, {"distance": 7, "pace": 130}, {"distance": 14, "pace": 140}],
}
总共有30个用户,每个用户最多有500个“帧”

我想同时为每个用户制作一个图标(svg、png或css)的动画,这样所有30个用户都可以在屏幕上看到

我怎样才能做到这一点,最好是以一种能很好地使用react.js的方式,因为我可能会用它来处理屏幕上的其他事情


或者,我可以纯粹在react.js和本机javascript中完成吗

基本上,您需要将进度(例如,从开始算起的毫秒)存储在state中,并让每个person组件根据数组和该数字确定其位置。你可以这样做:

componentDidMount: function(){
  var start = Date.now();
  var tick = function(){
    this.setState({time: Date.now() - start});
  };
  setInterval(tick.bind(this), 16);
},
render: function(){
  var people = this.props.people;
  return <div>{
    Object.keys(people).map(function(key){
      return <Person data={people[key]} time={this.state.time} key={key} />
    }.bind(this));
  }</div>
}
componentDidMount:function(){
var start=Date.now();
var tick=函数(){
this.setState({time:Date.now()-start});
};
设置间隔(勾选绑定(this),16);
},
render:function(){
var people=this.props.people;
返回{
对象。键(人)。映射(功能(键){
回来
}.约束(这个);
}
}

在StackOverflow,询问“最好的库来做这件事”的问题被认为是“离题”。嗯。。。如果您使用的是react.js。。。那就排除了大多数动画库。。。因此,您必须自己实现它……它可以像在react渲染代码中添加函数调用(这将更新用户的位置)一样简单。如果你知道。。。那应该是小菜一碟了。只需一次又一次地强制重新渲染。