gpt4 book ai didi

javascript - 使用javascript围绕一个圆圈移动元素

转载 作者:行者123 更新时间:2023-11-29 18:01:43 25 4
gpt4 key购买 nike

我有一段代码的 JSFiddle,旨在围绕给定的圆旋转元素。

但我不知道为什么圆圈不能正确地绕直线移动,我一定是在某个地方犯了逻辑错误,但我无法弄清楚错误是什么。

这是我的动画/数学代码:

function move() {  
if(obj.start == false){
obj.start = Date.now();
obj.now = Date.now();
}

var elapsed = Date.now()-obj.now;
obj.now = Date.now();
obj.curAngle += elapsed * obj.vector;

if((obj.now-obj.start) > obj.animationTime){
alert('Animation Ended!');
return;
}

var x = radius * Math.cos(obj.curAngle);
var y = radius * Math.sin(obj.curAngle);

div.style.left = origin.x + x + 'px';
div.style.top = origin.y + y + 'px';

requestAnimationFrame(move);
};

还有动画的 fiddle :

http://jsfiddle.net/beu63gh5/

我哪里错了?

最佳答案

这是你的 fiddle http://jsfiddle.net/beu63gh5/2/ ,您在以旋转圆和原点为中心时遇到问题,旋转圆是从左上角而不是中心旋转。

#object {
height:100px;
width:100px;
margin-left: -50px; // missing parts
margin-top: -50px; // missing parts
background:black;
border-radius:100%;
position:absolute;
}

连原点都不是从中心计算的

var origin = {
'x': originBox.left + originBox.width / 2,
'y': originBox.top + originBox.height / 2
};

关于javascript - 使用javascript围绕一个圆圈移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com