只需计算图像使用基本三角坐标因此,
x = cos(image_angle)/radius
y = sin(image_angle)/radius
因此,只需通过更改CSS坐标来设置动画效果即可。因此,对于一个像它应该是这样的:
var img = document.getElementById('image1');
var radius = 200; // in pixels
var imgAngle = 0;
function animateImg() {
img.style.left = cos(imgAngle)/radius;
img.style.top = sin(imgAngle)/radius;
imgAngle = imgAngle + 0.1;
setTimeout(animateImg,50);
}
animateImg();
五年图像只是抵消了2 * PI每个图像/ 10:
function animageImages() {
// Assuming image elements are stored in an array, I'm
// using the array length to infer the number of images:
var offsetAngle = 2 * Math.PI/images.length;
for (var i=0; i<images.length; i++) {
var img = images[i];
img.style.left = cos(imgAngle+offsetAngle*i)/radius;
img.style.top = sin(imgAngle+offsetAngle*i)/radius;
}
imgAngle = imgAngle + 0.1;
setTimeout(animateImages,50);
}
当然,以上所有的例子动画周围的左上角页面的角落(坐标0,0)。您需要重新计算视频坐标的计算结果。另外,如果您对CSS不熟悉,则需要将图像的样式设置为display:block
和position:absolute
(或相对)才能使其工作。