Mercurial > nebulaweb3
diff default/node_modules/shoestring/src/dom/css/getStyle.js @ 0:1d038bc9b3d2 default tip
Up:default
author | Liny <dev@neowd.com> |
---|---|
date | Sat, 31 May 2025 09:21:51 +0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/default/node_modules/shoestring/src/dom/css/getStyle.js Sat May 31 09:21:51 2025 +0800 @@ -0,0 +1,72 @@ +//>>excludeStart("exclude", pragmas.exclude); +define([ + "shoestring", + "dom/css/exceptions", +], function(){ +//>>excludeEnd("exclude"); + + (function() { + var cssExceptions = shoestring.cssExceptions; + + // marginRight instead of margin-right + function convertPropertyName( str ) { + return str.replace( /\-([A-Za-z])/g, function ( match, character ) { + return character.toUpperCase(); + }); + } + + function _getStyle( element, property ) { + return win.getComputedStyle( element, null ).getPropertyValue( property ); + } + + var vendorPrefixes = [ '', '-webkit-', '-ms-', '-moz-', '-o-', '-khtml-' ]; + + /** + * Private function for getting the computed style of an element. + * + * **NOTE** Please use the [css](../css.js.html) method instead. + * + * @method _getStyle + * @param {HTMLElement} element The element we want the style property for. + * @param {string} property The css property we want the style for. + */ + shoestring._getStyle = function( element, property ) { + var convert, value, j, k; + + if( cssExceptions[ property ] ) { + for( j = 0, k = cssExceptions[ property ].length; j < k; j++ ) { + value = _getStyle( element, cssExceptions[ property ][ j ] ); + + if( value ) { + return value; + } + } + } + + for( j = 0, k = vendorPrefixes.length; j < k; j++ ) { + convert = convertPropertyName( vendorPrefixes[ j ] + property ); + + // VendorprefixKeyName || key-name + value = _getStyle( element, convert ); + + if( convert !== property ) { + value = value || _getStyle( element, property ); + } + + if( vendorPrefixes[ j ] ) { + // -vendorprefix-key-name + value = value || _getStyle( element, vendorPrefixes[ j ] + property ); + } + + if( value ) { + return value; + } + } + + return undefined; + }; + })(); + +//>>excludeStart("exclude", pragmas.exclude); +}); +//>>excludeEnd("exclude");