Version 3.18.1
Show:

File: dom/js/dom-size.js

            Y.mix(Y.DOM, {
                /**
                 * Sets the width of the element to the given size, regardless
                 * of box model, border, padding, etc.
                 * @method setWidth
                 * @param {HTMLElement} element The DOM element.
                 * @param {String|Number} size The pixel height to size to
                 */
            
                setWidth: function(node, size) {
                    Y.DOM._setSize(node, 'width', size);
                },
            
                /**
                 * Sets the height of the element to the given size, regardless
                 * of box model, border, padding, etc.
                 * @method setHeight
                 * @param {HTMLElement} element The DOM element.
                 * @param {String|Number} size The pixel height to size to
                 */
            
                setHeight: function(node, size) {
                    Y.DOM._setSize(node, 'height', size);
                },
            
                _setSize: function(node, prop, val) {
                    val = (val > 0) ? val : 0;
                    var size = 0;
            
                    node.style[prop] = val + 'px';
                    size = (prop === 'height') ? node.offsetHeight : node.offsetWidth;
            
                    if (size > val) {
                        val = val - (size - val);
            
                        if (val < 0) {
                            val = 0;
                        }
            
                        node.style[prop] = val + 'px';
                    }
                }
            });