javascript - CSS:如何避免 360° 的过渡旋转中断?

标签 javascript css

我目前使用 JavaScript/CSS 实现了一个指南针。

全局实现工作正常。

但是,指南针的光标移动是颠簸的。我在 CSS 中实现了过渡 ease-in-out 以避免这个问题。

从 0 度到 359 度,光标逆时针旋转(使用 CSS 过渡)。

但是如果 Angular 设置为从 356 度到 1 度,CSS 过渡会顺时针旋转光标,所以间隙很大(355 度而不是 5 度)。

是否有避免这种差距的方法或其他解决方案来实现良好的过渡?

谢谢。

最佳答案

感谢每一个想法。

因此,通过 CSS,解决方案是像 Diodeus 所说的那样在 360 度范围内不断递增。但在我的例子中,计算出的 Angular 在 0 到 360° 之间缩放。

通过 JS,我们可以使用 anime.js,但我更喜欢编写适当的动画功能。此函数执行以下操作:

  • 计算当前位置和目的地之间的顺时针 Angular
  • 计算当前位置和目的地之间的逆时针 Angular
  • 计算两者之间的最小 Angular (这是最短的路径)
  • 对于 5 个样本,开始超时 5 次并将 [最小 Angular /5] 添加到当前位置以到达目的地。

关于javascript - CSS:如何避免 360° 的过渡旋转中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53855399/

相关文章:

javascript - 我如何使用 .mousemove 根据与中心页面的距离淡化背景图像?

javascript - 浏览器中的 "Open link in new tab"与 HTML 中的 "target=_blank"

javascript - 使用 javascript/HTML 登录提示

javascript - Highcharts:使用 boost 在大量折线图中快速、实时地更新数据

html - Chrome 显示图像的方式与其他浏览器不同

CSS 动画 : Need It To Stop On Last Frame/Word

html - 如何制作上下垂直线

javascript - 如果按下 onclick,则阻止 mouseout 事件监听器

javascript - 结合 Javascript + HTML 时删除自动添加的换行符

javascript - 如何通过javascript设置盒子阴影?