带过渡的线性/增量旋转动画
Linear/Incremental rotation animation with transition
我正在尝试使用 D3 中的转换属性和过渡方法让 SVG 形状旋转。下面是包含示例的 jsfiddle:http://jsfiddle.net/TJd2a/
我使用两个按钮,左和右,通过按角度增加 45 或 -45 度来旋转矩形。当形状达到 180 度或 -180 度时,过渡将以相反的方式旋转形状,而不是线性移动到下一个角度。使用控制台日志记录,我发现我的代码生成的角度没有任何问题。这似乎是 D3 处理转换的方式,因为生成的 XML 显示的角度与当前的角度不同(例如,当处于 225 度时,D3 会让矩形旋转 -135)。
根据我从文档中阅读和理解的内容,我需要使用自定义补间,但我不确定从哪里开始自定义补间,因为我找不到任何特定于或类似示例的示例来帮助我了解它的工作原理。
正确;您可以使用自定义补间来更改插值器。D3 有一个用于转换的特殊插值器,但它在您的情况下没有做正确的事情。(我认为这可能是一个应该修复的错误,所以我提交了问题 661。下面是一个改用插值字符串的示例:
d3.select("rect").transition().attrTween("transform", function(d) {
return d3.interpolateString(
"rotate("+ d.a +")",
"rotate(" + (d.a += 45) + ")"
);
});
相关文章:
- 如何在使用Kinetic拖动同一对象后,在旋转动画中保持先前的偏移
- -webkit转换在JavaScript旋转动画中不起作用(没有JQuery)
- 与jquery旋转动画斗争
- 停止在css上旋转动画
- 使用CSS和Javascript的无限旋转动画
- 带过渡的线性/增量旋转动画
- 根据键盘 threejs 更改对象旋转动画方向
- 使用 css3 或 js 的连续旋转动画
- 如何使用 Raphael.js 在每次单击鼠标时触发旋转动画
- 制作旋转动画:缓慢开始和结束,但在中间快速
- 将2D画布(图像+文本)应用于3D表面,并进行360度旋转/动画-可以使用HTML5/CSS3/Javascript或F
- 控制CSS旋转动画:Get, set, start, stop
- Javascript旋转动画
- js -制作一个旋转动画
- JQuery图像旋转动画,工作在一个方向,而不是另一个
- 我如何使这个旋转动画
- 如何制作一个逼真的轮盘赌球旋转动画
- jquery悬停和线旋转动画
- 在画布上旋转动画时的意外行为
- 如何检测移动Safari全局方向旋转动画