mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-24 04:16:00 +08:00
Add skewX and skewY to the transform style options
Summary: Closes https://github.com/facebook/react-native/pull/2652 Reviewed By: @trunkagent, @svcscm Differential Revision: D2437758 Pulled By: @vjeux
This commit is contained in:
committed by
facebook-github-bot-9
parent
8db35d492b
commit
74f467b00a
@@ -25,7 +25,9 @@ var TransformPropTypes = {
|
|||||||
ReactPropTypes.shape({scaleX: ReactPropTypes.number}),
|
ReactPropTypes.shape({scaleX: ReactPropTypes.number}),
|
||||||
ReactPropTypes.shape({scaleY: ReactPropTypes.number}),
|
ReactPropTypes.shape({scaleY: ReactPropTypes.number}),
|
||||||
ReactPropTypes.shape({translateX: ReactPropTypes.number}),
|
ReactPropTypes.shape({translateX: ReactPropTypes.number}),
|
||||||
ReactPropTypes.shape({translateY: ReactPropTypes.number})
|
ReactPropTypes.shape({translateY: ReactPropTypes.number}),
|
||||||
|
ReactPropTypes.shape({skewX: ReactPropTypes.string}),
|
||||||
|
ReactPropTypes.shape({skewY: ReactPropTypes.string})
|
||||||
])
|
])
|
||||||
),
|
),
|
||||||
transformMatrix: ReactPropTypes.arrayOf(ReactPropTypes.number),
|
transformMatrix: ReactPropTypes.arrayOf(ReactPropTypes.number),
|
||||||
|
|||||||
@@ -128,6 +128,12 @@ function _precomputeTransforms(style: Object): Object {
|
|||||||
case 'translateY':
|
case 'translateY':
|
||||||
_multiplyTransform(result, MatrixMath.reuseTranslate2dCommand, [0, value]);
|
_multiplyTransform(result, MatrixMath.reuseTranslate2dCommand, [0, value]);
|
||||||
break;
|
break;
|
||||||
|
case 'skewX':
|
||||||
|
_multiplyTransform(result, MatrixMath.reuseSkewXCommand, [_convertToRadians(value)]);
|
||||||
|
break;
|
||||||
|
case 'skewY':
|
||||||
|
_multiplyTransform(result, MatrixMath.reuseSkewYCommand, [_convertToRadians(value)]);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Error('Invalid transform name: ' + key);
|
throw new Error('Invalid transform name: ' + key);
|
||||||
}
|
}
|
||||||
@@ -209,6 +215,8 @@ function _validateTransform(key, value, transformation) {
|
|||||||
case 'rotateY':
|
case 'rotateY':
|
||||||
case 'rotateZ':
|
case 'rotateZ':
|
||||||
case 'rotate':
|
case 'rotate':
|
||||||
|
case 'skewX':
|
||||||
|
case 'skewY':
|
||||||
invariant(
|
invariant(
|
||||||
typeof value === 'string',
|
typeof value === 'string',
|
||||||
'Transform with key of "%s" must be a string: %s',
|
'Transform with key of "%s" must be a string: %s',
|
||||||
|
|||||||
@@ -157,6 +157,16 @@ var MatrixMath = {
|
|||||||
return mat;
|
return mat;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
reuseSkewXCommand: function(matrixCommand, radians) {
|
||||||
|
matrixCommand[4] = Math.sin(radians);
|
||||||
|
matrixCommand[5] = Math.cos(radians);
|
||||||
|
},
|
||||||
|
|
||||||
|
reuseSkewYCommand: function(matrixCommand, radians) {
|
||||||
|
matrixCommand[0] = Math.cos(radians);
|
||||||
|
matrixCommand[1] = Math.sin(radians);
|
||||||
|
},
|
||||||
|
|
||||||
multiplyInto: function(out, a, b) {
|
multiplyInto: function(out, a, b) {
|
||||||
var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
|
var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],
|
||||||
a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
|
a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],
|
||||||
|
|||||||
Reference in New Issue
Block a user