Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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制作图像序列动画_Javascript_Image_Animation_Sequencing - Fatal编程技术网

用JavaScript制作图像序列动画

用JavaScript制作图像序列动画,javascript,image,animation,sequencing,Javascript,Image,Animation,Sequencing,我有一个序列,从不同角度拍摄一个物体的图像。我希望当用户拖动鼠标时,对象被人造旋转,我已经实现了这一点 但我想要的是,当鼠标离开图像区域时,它会将图像序列设置回默认位置 例如,我有30个JPEG,其中1.jpg是-180°,30.jpg是180°。当然,15.jpg是以0°为中心的默认图像 因此,如果用户一直旋转到(-)180°,它将在3秒钟后旋转回0°。但我希望动画尽可能平滑。我将如何执行此操作?为了使动画尽可能平滑,您应该使用CSS精灵,一个包含所有其他图像的图像,以便在动画开始时加载所有帧

我有一个序列,从不同角度拍摄一个物体的图像。我希望当用户拖动鼠标时,对象被人造旋转,我已经实现了这一点

但我想要的是,当鼠标离开图像区域时,它会将图像序列设置回默认位置

例如,我有30个JPEG,其中1.jpg是-180°,30.jpg是180°。当然,15.jpg是以0°为中心的默认图像


因此,如果用户一直旋转到(-)180°,它将在3秒钟后旋转回0°。但我希望动画尽可能平滑。我将如何执行此操作?

为了使动画尽可能平滑,您应该使用CSS精灵,一个包含所有其他图像的图像,以便在动画开始时加载所有帧

然后,您只需要在给定的时间内调用函数,这取决于您希望动画的平滑程度,并更改图像的背景属性。或者,如果不使用sprite,则为其指定不同的src

我认为您应该选择每秒帧数不小于25的值。帧速率越高意味着动画越流畅,但使用的CPU越多

这是基本方法

function next_frame() {

  frame += 1;

  // start animation again from the start if last frame reached (optional)
  if ( frame == max_frames ) {
    frame = 0;
  }

  /* change either the class of your image (if you use sprites
     and specified a class for each background position) or the
     background position property directly. If not using sprites,
     assign a different image src based on current frame.
  */

  // call the function again
  setTimeout( next_frame, 1000 / 25 ); // change 25 with your desired FPS value.

}

如果您想让图像恢复动画效果,只需采用相同的方法,但帧数要向后。

显示您已有的代码是一个很好的开始-最好是在站点或jsFiddle.net上