【问题标题】:How to get transform matrix and matrix3d values in jQuery?如何在 jQuery 中获取变换矩阵和 matrix3d 值?
【发布时间】:2014-11-29 01:11:59
【问题描述】:

我有各种元素执行各种变换动画,我需要获取它们的值

  • 翻译X
  • 翻译Y
  • 翻译Z
  • rotateX
  • 旋转Y
  • 旋转Z
  • 规模

    $('.selector').css('transform');

有时它给我一个 matrix() 有时是一个 matrix3d,我不知道如何安全地获得我需要的值。

我需要的是,无论当前变换是矩阵还是matrix3d,我都需要以上所有值,即使它们是未定义或NaN。

【问题讨论】:

  • 问题是那些 可以在transform 属性中多次放置。想象一下,您有 translateX rotateY translateX 来更改您旋转元素的轴。当动画处于活动状态时,您可以 AFAIK 仅访问计算值。虽然不完全相关,但这可能会对您有所帮助:Get Value of CSS Rotation through JavaScript
  • 我以为您的意思是:您有一个从开启状态到另一个状态的动画,并且您想在制作动画时获取值? transformation 不像具有 translateX, translateY, ... 属性的对象。但是一个按顺序应用转换的数组。两种状态之间的转换及其顺序不需要相同,这就是恕我直言,您不会获得那些单独的转换而只会获得最终矩阵的原因。但是,如果它是受控设置,您也许可以从 matrix 中检索它

标签: jquery css transform


【解决方案1】:

我设法通过$('.selector').data('key','value') 得到了一些工作。我们的想法是在更改这些值并且动画结束后获取这些值。

简而言之:

  • 动画结束时
$('.selector').data('translateX', translateXvalue);
  • 当一个新动画开始时,我可能需要这个 translateX 值作为起点
var previousX = $('.selector').data('translateX');

我知道还有一些其他方法使用三角函数来计算矩阵值,但这非常适合我的需要。这对 2D 动画效果很好,对 3D 动画有点草率,它更好,而且我认为也更受性能驱动。

我希望这对某人有所帮助,祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多