finalPropName.js 870 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. define( [
  2. "../var/document",
  3. "../core"
  4. ], function( document, jQuery ) {
  5. "use strict";
  6. var cssPrefixes = [ "Webkit", "Moz", "ms" ],
  7. emptyStyle = document.createElement( "div" ).style,
  8. vendorProps = {};
  9. // Return a vendor-prefixed property or undefined
  10. function vendorPropName( name ) {
  11. // Check for vendor prefixed names
  12. var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
  13. i = cssPrefixes.length;
  14. while ( i-- ) {
  15. name = cssPrefixes[ i ] + capName;
  16. if ( name in emptyStyle ) {
  17. return name;
  18. }
  19. }
  20. }
  21. // Return a potentially-mapped jQuery.cssProps or vendor prefixed property
  22. function finalPropName( name ) {
  23. var final = jQuery.cssProps[ name ] || vendorProps[ name ];
  24. if ( final ) {
  25. return final;
  26. }
  27. if ( name in emptyStyle ) {
  28. return name;
  29. }
  30. return vendorProps[ name ] = vendorPropName( name ) || name;
  31. }
  32. return finalPropName;
  33. } );