Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 如何在反向旋转内圈的同时以圆周运动旋转div?_Javascript_Jquery_Css_Raphael_Geometry - Fatal编程技术网

Javascript 如何在反向旋转内圈的同时以圆周运动旋转div?

Javascript 如何在反向旋转内圈的同时以圆周运动旋转div?,javascript,jquery,css,raphael,geometry,Javascript,Jquery,Css,Raphael,Geometry,这个形象正是我想要达到的。边缘上的圆圈可以单击。其结构使得每次旋转将是45度的倍数。 我正在使用css transform rotate属性进行旋转 它应该如何工作 当我们点击边缘上的任何一个圆时,它应该会回到它的活动位置,并且它应该总是顺时针旋转。 这就是我所做的 我通过给圆指定数字来实现旋转 i、 例如,如果点击7号,它将旋转9-7*45=90度。 这一次我没有动态地改变数字。i、 例如,当圆旋转时,给圆的数字是相同的 这在这里很好用。但是,让我们看看这个场景:当我们点击第二个位置圆圈时,它

这个形象正是我想要达到的。边缘上的圆圈可以单击。其结构使得每次旋转将是45度的倍数。 我正在使用css transform rotate属性进行旋转

它应该如何工作

当我们点击边缘上的任何一个圆时,它应该会回到它的活动位置,并且它应该总是顺时针旋转。 这就是我所做的

我通过给圆指定数字来实现旋转

i、 例如,如果点击7号,它将旋转9-7*45=90度。 这一次我没有动态地改变数字。i、 例如,当圆旋转时,给圆的数字是相同的

这在这里很好用。但是,让我们看看这个场景:当我们点击第二个位置圆圈时,它将旋转315度,然后如果你再次点击同一个第二个位置,它将以270度的角度旋转,并逆时针方向旋转div。我认为这是它的行为。但是,我不想发生这种事。它应再次顺时针旋转,并应处于激活位置

为了实现上述目标,我做了以下工作:

使用上一个角度添加角度

var prev_degree=prev_degree+当前_degree

当前度数是使用上面的相同公式计算的

这一次,我动态地更改了数字,即每次单击都会将数字指定给所需的位置。如图所示,从激活位置开始1到8

但这一次,当我旋转圆圈1,2次时,它旋转得非常完美,然后开始奇怪地工作。如果你不断点击同一个数字,那么它将添加相同的角度,并将保持完美旋转,无论你的角度是什么。如果你点击随机圆圈,它就不会工作,这是完全错误的

为什么是顺时针

因为边上的圆包含图标,当整个圆旋转时,我必须保持图标的位置。我可以通过指定负角度来实现边上的旋转圆。但是,现在这不是问题

当我得到负角度时,没有任何情况

如果你不清楚我的问题,请告诉我

请让我知道你的建议,使这项工作:-


我将在JSFIDLE上放置一个测试用例,供人们使用。逻辑实际上非常简单。其实质是对它们全部进行编号,跟踪其中一个位于顶部,然后计算该项与单击项之间的差值,然后旋转n乘以差值的任何人之间的差值。回答了一个类似的问题,请在下一个问题中包含您的完整代码time@ZachSaucier:当然,我将从下次开始添加代码。这一次我不想这样做。因为这似乎是这里唯一的逻辑。@Zachsauier:你所给的链接,它总是旋转30度,即固定角度。但在我的例子中,计算的角度是随机的,这造成了一些混乱。