demo/load-event/js/libs/jquery.isinview/jquery.isinview-1.0.3.js
function getCss ( elem, properties, opts ) {
        var i, length, name,
            props = {},
            _window = ( elem.ownerDocument.defaultView || elem.ownerDocument.parentWindow ),
            computedStyles = _useGetComputedStyle ? _window.getComputedStyle( elem, null ) : elem.currentStyle;

        opts || ( opts = {} );

        if ( ! $.isArray( properties ) ) properties = [ properties ];
        length = properties.length;

        for ( i = 0; i < length; i++ ) {
            name = properties[i];
            props[name] = $.css( elem, name, false, computedStyles );
            if ( opts.toLowerCase && props[name] && props[name].toLowerCase ) props[name] = props[name].toLowerCase();
            if ( opts.toFloat ) props[name] = parseFloat( props[name] );
        }

        return props;
    }
function getCss ( elem, properties, opts ) {
        var i, length, name,
            props = {},
            _window = ( elem.ownerDocument.defaultView || elem.ownerDocument.parentWindow ),
            computedStyles = _useGetComputedStyle ? _window.getComputedStyle( elem, null ) : elem.currentStyle;

        opts || ( opts = {} );

        if ( ! $.isArray( properties ) ) properties = [ properties ];
        length = properties.length;

        for ( i = 0; i < length; i++ ) {
            name = properties[i];
            props[name] = $.css( elem, name, false, computedStyles );
            if ( opts.toLowerCase && props[name] && props[name].toLowerCase ) props[name] = props[name].toLowerCase();
            if ( opts.toFloat ) props[name] = parseFloat( props[name] );
        }

        return props;
    }
function getCss ( elem , properties , opts ) { var i , length , name , props = { } , _window = ( elem . ownerDocument . defaultView || elem . ownerDocument . parentWindow ) , computedStyles = _useGetComputedStyle ? _window . getComputedStyle ( elem , null ) : elem . currentStyle ; opts || ( opts = { } ) ; if ( ! $ . isArray ( properties ) ) properties = [ properties ] ; length = properties . length ; for ( i = 0 ; i < length ; i ++ ) { name = properties [ i ] ; props [ name ] = $ . css ( elem , name , false , computedStyles ) ; if ( opts . toLowerCase && props [ name ] && props [ name ] . toLowerCase ) props [ name ] = props [ name ] . toLowerCase ( ) ; if ( opts . toFloat ) props [ name ] = parseFloat ( props [ name ] ) ; } return props ; }
Returns the computed style for a property, or an array of properties, as a hash.

Building a CSS properties hash this way can be significantly faster than the more convenient, conventional jQuery
approach, $( elem ).css( propertiesArray ).

ATTN
====

We are using an internal jQuery API here: $.css(). The current signature was introduced in jQuery 1.9.0. It may
break without warning with any change of the minor version.

For that reason, the $.css API is monitored by the tests in api.jquery.css.spec.js which verify that it works as
expected.

@param {HTMLElement}     elem
@param {string|string[]} properties
@param {Object}          [opts]
@param {boolean}         [opts.toLowerCase=false]  ensures return values in lower case
@param {boolean}         [opts.toFloat=false]      converts return values to numbers, using parseFloat

@returns {Object}        property names and their values
Returns the computed style for a property or an array of properties as a hash .