我需要在我的网站上有一个太阳图像和月亮图像,这将在一天中的大部分时间被隐藏,但是当它们显示的时候,它们将从左侧开始以圆周运动并完成到正确的。
我有代码说明白天或晚上要实现多少百分比,我只需要知道如何在不旋转图像的情况下以圆周运动移动图像。
我需要在我的网站上有一个太阳图像和月亮图像,这将在一天中的大部分时间被隐藏,但是当它们显示的时候,它们将从左侧开始以圆周运动并完成到正确的。
我有代码说明白天或晚上要实现多少百分比,我只需要知道如何在不旋转图像的情况下以圆周运动移动图像。
CSS部分:
三角函数:
基本上你想走半圈,0% 的 pi 度和 100% 的 0 度,所以它就像获取圆坐标(即 x=center+radius*cos(angle)),但唯一复杂的部分是你需要反转角度:PI*(1-percent)
var centerX = document.body.offsetWidth / 2; // center of screen
var centerY = document.body.offsetHeight / 2;
var radiusX = document.body.offsetWidth / 3; // radius 1/3 screen
var radiusY = document.body.offsetHeight / 3;
var angle = Math.PI * (1-percent);
var x = centerX + radiusX * Math.cos(angle);
var y = centerY + radiusY * Math.sin(angle);
好的。
我只是为自己想出了圆周运动,这很简单。你用一个半径、一个角度和一些简单的数学运算来确定某物的位置。所以...
var body = document.getElementsByTagName("body")[0],
radius = 100, // Some radius here
max = 50; // max number of generations we want (half a circle)
for (var i = 1; i <= max * 2; i++) {
var div = document.createElement("div"),
angle = Math.PI * (i / max);
div.style.backgroundColor = "#000";
div.style.borderRadius = div.style.height = div.style.width = "8px";
div.style.left = ((Math.sin(angle) * radius) + radius) + "px";
div.style.position = "absolute";
div.style.top = ((Math.cos(angle) * radius) + radius) + "px";
body.appendChild(div);
}
你应该得到一个完整的圆圈。只需根据需要对数学进行解构和重构,就可以开始了。