在不发生跳跃的情况下更改transformOrigin
如果你想更改transformOrigin
而不产生跳变,你需要对其平移(x/y)进行补偿。这是为了实现此目的而编写的一个函数:
function smoothOriginChange(targets, transformOrigin) {
gsap.utils.toArray(targets).forEach(function (target) {
var before = target.getBoundingClientRect();
gsap.set(target, { transformOrigin: transformOrigin });
var after = target.getBoundingClientRect();
gsap.set(target, {
x: "+=" + (before.left - after.left),
y: "+=" + (before.top - after.top),
});
});
}
演示