我似乎无法清除由GSAP动画设置的图像元素上的样式。

我尝试了各种方法:

$('#element').removeAttr("style");

$('#element').attr('style', '');

$("#element").css({
    '-webkit-transform': "",
    '-moz-transform': "",
    '-o-transform': "",
    'msTransform': "",
    'transform': ""
});

以上都不是。不过,当我从Chrome控制台运行这些方法时,它们确实起作用了...

应用的样式如下:
style="-webkit-transform: matrix(-0.99775, 0.06697, -0.06697, -0.99775, 0, 0);"

最佳答案

如果您要清除属性,则可以使用GSAP的clearProps特殊属性,例如:

//clear all inline properties immediately with a set() call:
TweenLite.set("#element", {clearProps:"all"});

//or clear just the transform:
TweenLite.set("#element", {clearProps:"transform"});

//or clear the transform at the end of your tween:
TweenLite.to("#element", 1, {rotation:60, scale:0.5, clearProps:"transform"});

作为记录,GSAP仅在您要求属性时(例如在补间期间)设置属性-它会而不是不断将其强制为内联样式。变换有点奇怪,因为要解决某些浏览器错误并正确维护状态,它必须在元素本身上记录变换分量(旋转,缩放,位置,偏斜),然后在下次补间时读取这些变换分量除非您设置parseTransform:true,否则将强制该元素从浏览器读取计算出的样式矩阵,但这几乎是没有必要的。当然,如果您清除了Props:“all”或任何转换,它也将清除掉它们,并在下一次从浏览器提供的矩阵中重新解析它们。

如果您仍然遇到问题,也可以在GSAP代码的上下文中查看问题,这将非常有帮助,因此请使用Codepen或jsfiddle或其他方式提供简化的测试用例。

补间快乐!

10-06 14:16