@@ -437,34 +437,37 @@ function setElementValue(element, animationType, propertyKey, value, unit) {
437
437
* There are three types of animations
438
438
* 'transform', 'opacity', 'object'
439
439
*
440
+ * @param {* } element The animatable element.
440
441
* @param {String } key The property key.
441
442
* @returns {String }
442
443
*/
443
- function getAnimationType ( key ) {
444
- switch ( key ) {
445
- case 'x' :
446
- case 'y ' :
447
- case 'translateX ' :
448
- case 'translateY ' :
449
- case 'translateZ ' :
450
- case 'scale ' :
451
- case 'scaleX ' :
452
- case 'scaleY ' :
453
- case 'scaleZ ' :
454
- case 'skew ' :
455
- case 'skewX ' :
456
- case 'skewY ' :
457
- case 'skewZ ' :
458
- case 'rotate ' :
459
- case 'rotateX ' :
460
- case 'rotateY ' :
461
- case 'rotateZ ' :
462
- return 'transform' ;
463
- case 'opacity' :
464
- return 'opacity' ;
465
- default :
466
- return 'object' ;
444
+ function getAnimationType ( element , key ) {
445
+ if ( isDOM ( element ) ) {
446
+ switch ( key ) {
447
+ case 'x ' :
448
+ case 'y ' :
449
+ case 'translateX ' :
450
+ case 'translateY ' :
451
+ case 'translateZ ' :
452
+ case 'scale ' :
453
+ case 'scaleX ' :
454
+ case 'scaleY ' :
455
+ case 'scaleZ ' :
456
+ case 'skew ' :
457
+ case 'skewX ' :
458
+ case 'skewY ' :
459
+ case 'skewZ ' :
460
+ case 'rotate ' :
461
+ case 'rotateX ' :
462
+ case 'rotateY ' :
463
+ case 'rotateZ' :
464
+ return 'transform' ;
465
+ case 'opacity' :
466
+ return 'opacity' ;
467
+ }
467
468
}
469
+
470
+ return 'object' ;
468
471
}
469
472
470
473
/**
@@ -542,6 +545,8 @@ function generateAnimations(elements, params) {
542
545
// same properties for all selected elements, that
543
546
// means that we can parse properties first
544
547
// before looping through elements.
548
+ // TODO: Retrieve animation type first
549
+ // before parsing properties (in order to not translate properties of objects)
545
550
var properties = parseProperties ( params . p ) ;
546
551
var animations = [ ] ;
547
552
var instanceDuration = 0 ;
@@ -561,7 +566,7 @@ function generateAnimations(elements, params) {
561
566
forEachIn ( Object . keys ( properties ) ) ( function ( key ) {
562
567
var property = { n : key , v : properties [ key ] } ;
563
568
// Get the animation type.
564
- var animationType = getAnimationType ( key ) ;
569
+ var animationType = getAnimationType ( element , key ) ;
565
570
var parameters = extend ( params , {
566
571
el : element ,
567
572
type : animationType ,
0 commit comments