【发布时间】:2023-03-23 06:25:01
【问题描述】:
更新和澄清
我需要执行一些在图标上立即旋转(使用 css3 transform)的 jquery。然后一旦图标旋转,我想动画并缩放到 200% 的大小。但是,由于缩放和旋转都是一个 CSS3 属性(变换),我看到这两个过渡都以 0.5 秒的动画形式发生。 (在 JQUERY 代码中,我还更新了位置(顶部、左侧),但由于它不在 transition: 标记中,它会根据需要立即发生。
我想要的是立即发生旋转,并在 2 秒内发生缩放。有什么想法吗?
CSS:
transition: transform 0.5s;
-webkit-transition: -webkit-transform 0.5s;
JQUERY:
self.pick = function (cmd) {
var pt = Tools.cmdToPoint(cmd);
$(self.bbox).css("position", "fixed");
$(self.bbox).css("top", pt.y - 32);
$(self.bbox).css("left", pt.x - 32);
$(self.bbox).css("opacity", "1");
var theta = self.angle(cmd);
$(self.bbox).css("transform", "rotate(" + theta + "deg) scale(2.0)");
$(self.bbox).css("-webkit-transform", "rotate(" + theta + "deg) scale(2.0)");
}
发生的情况是,由于项目的过渡,缩放和旋转都发生在超过 0.5 秒的动画中。
【问题讨论】:
-
如果在添加大类之前创建一个旋转类并将其添加到元素中,而不是操作元素的 css,会发生什么?
-
我真的不能这样寻求解决方案。我正在做的是在 javascript 中根据鼠标按下的位置动态计算此图标的旋转。所以没有固定的旋转。我计算旋转,然后我希望元素旋转和增长。你能解决这个问题吗?不太确定,但你能把它分成两个转换吗?旋转和缩放,然后也增长它。这样你会旋转 100%,然后缩放 25%,然后在完成之后,缩放最后的 75%?@AdmiralAdama 只有在时间函数是线性的情况下才会起作用。对于更复杂的计时功能(例如,你想缓和旋转,但缓和规模)变得不可能。
标签: javascript jquery css animation