请问有什么方法可以在一段时间内结合更多的CSS3变换? 例如,当我设置这个
$bgWrapper.css({
'-webkit-transform' : ' scale3d(' + currScale + ', '+ currScale +', 1)'
});
然后在短时间内
$bgWrapper.css({
'-webkit-transform' : 'translate3d('+ ((currCoords[0])/currScale) +'px, '+ ((currCoords[1])/currScale) +'px, 0px) '
});
我遇到了问题。第一个变换被第二个变换覆盖,但这就是我绝对不希望发生的事情。 所以我观察到我可以组合这些值,所以我可以暂时存储旧值并执行此操作
var tmpTransform = $bgWrapper.css('-webkit-transform');
$bgWrapper.css({
'-webkit-transform' : ''+ tmpTransform +'translate3d('+ ((currCoords[0])/currScale) +'px, '+ ((currCoords[1])/currScale) +'px, 0px) '
});
但即使这样不正确,也有重复通话的问题..
那么有没有办法如何获得css3规模的精确值vie javascript?有没有办法如何通过js获得CSS3翻译的确切值? 目前我只获得具有这些值的矩阵,当然我可以解析它,但我希望有更好的解决方案。
最后..我认为-webkit-transform:matrix(...)在iPad上不是硬件加速,所以唯一的方法是matrix3d?正确地组合所有这些转换没有问题..
非常感谢,希望您理解我的问题:)
答案 0 :(得分:7)
你需要操纵矩阵才能完成你想要做的事情:
var transform = new WebKitCSSMatrix(window.getComputedStyle(element).webkitTransform);
transform = transform.rotateAxisAngle(0,0,0,45)
element.style.webkitTransform = transform;
manipulating WebkitCSSMatrix 的方法是:
.multiply()
.inverse()
.translate()
.scale()
.rotate()
.rotateAxisAngle()
.skewX()
.skewY()
您可以在此处观看演示:
答案 1 :(得分:2)
我是网页设计的新手但不是新手Googler。
要组合转换,您必须将所有转换放在同一行代码中。
我正在谈论的这段话接近底部。
合并转化
CSS变换本身很有用,但是当你将它们组合在一起并获得显着的结果时,它们的真正力量就会被揭开。无论何时组合它们,请记住必须在一行中定义所有变换。以下是示例语法:
#rotate-skew-scale-translate {
transform:skew(30deg) scale(1.1,1.1) rotate(40deg) translate(10px, 20px);
}