Changeset 1388

Show
Ignore:
Timestamp:
06/21/08 11:48:04 (4 months ago)
Author:
cito@online.de
Message:

Refactored patch in r1383 (wrong sizes in visual effects). Instead of additional functions getElementWidth and getElementHeight, a boolean parameter contentSize has been added to getElementDimensions. The content size is now calculated by subtracting padding and border. Added a hack to getStyle to always get pixel sizes, even with Internet Explorer, to get more consistent behavior, and to make this work when padding or border are not set in pixels. Some small improvements in the visual effects demos.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mochikit/trunk/MochiKit/Style.js

    r1383 r1388  
    124124            } else if (elem.currentStyle) { 
    125125                value = elem.currentStyle[cssProperty]; 
     126                if (/^\d/.test(value) && !/px$/.test(value)) { 
     127                    /* Convert to px using an hack from Dean Edwards */ 
     128                    var left = elem.style.left; 
     129                    var rsLeft = elem.runtimeStyle.left; 
     130                    elem.runtimeStyle.left = elem.currentStyle.left; 
     131                    elem.style.left = value || 0; 
     132                    value = elem.style.pixelLeft + "px"; 
     133                    elem.style.left = left; 
     134                    elem.runtimeStyle.left = rsLeft; 
     135                } 
    126136            } 
    127137        } 
     
    130140        } 
    131141 
    132         if (/Opera/.test(navigator.userAgent) && (MochiKit.Base.find(['left', 'top', 'right', 'bottom'], cssProperty) != -1)) { 
     142        if (/Opera/.test(navigator.userAgent) && (MochiKit.Base.findValue(['left', 'top', 'right', 'bottom'], cssProperty) != -1)) { 
    133143            if (MochiKit.Style.getStyle(elem, 'position') == 'static') { 
    134144                value = 'auto'; 
     
    137147 
    138148        return value == 'auto' ? null : value; 
    139     }, 
    140  
    141     /** @id MochiKit.Style.getElementWidth */ 
    142     getElementWidth: function (elem) { 
    143         var self = MochiKit.Style; 
    144         w = parseFloat(self.getStyle(elem, 'width')); 
    145         if (/Opera/.test(navigator.userAgent)) { 
    146             w -= (parseFloat(self.getStyle(elem, 'paddingLeft')) 
    147                 + parseFloat(self.getStyle(elem, 'paddingRight')) 
    148                 + parseFloat(self.getStyle(elem, 'borderLeft')) 
    149                 + parseFloat(self.getStyle(elem, 'borderRight'))); 
    150         } 
    151         return w; 
    152     }, 
    153  
    154     /** @id MochiKit.Style.getElementHeight */ 
    155     getElementHeight: function (elem) { 
    156         var self = MochiKit.Style; 
    157         h = parseFloat(self.getStyle(elem, 'height')); 
    158         if (/Opera/.test(navigator.userAgent)) { 
    159             h -= (parseFloat(self.getStyle(elem, 'paddingTop')) 
    160                 + parseFloat(self.getStyle(elem, 'paddingBottom')) 
    161                 + parseFloat(self.getStyle(elem, 'borderTop')) 
    162                 + parseFloat(self.getStyle(elem, 'borderBottom'))); 
    163         } 
    164         return h; 
    165149    }, 
    166150 
     
    350334 
    351335    /** @id MochiKit.Style.getElementDimensions */ 
    352     getElementDimensions: function (elem) { 
     336    getElementDimensions: function (elem, contentSize/*optional*/) { 
    353337        var self = MochiKit.Style; 
    354338        var dom = MochiKit.DOM; 
     
    362346        var disp = self.getStyle(elem, 'display'); 
    363347        // display can be empty/undefined on WebKit/KHTML 
    364         if (disp != 'none' && disp !== '' && typeof(disp) != 'undefined') { 
    365             return new self.Dimensions(elem.offsetWidth || 0, 
    366                 elem.offsetHeight || 0); 
    367         } 
    368         var s = elem.style; 
    369         var originalVisibility = s.visibility; 
    370         var originalPosition = s.position; 
    371         var originalDisplay = s.display; 
    372         s.visibility = 'hidden'; 
    373         s.position = 'absolute'; 
    374         s.display = ''; 
    375         var originalWidth = elem.offsetWidth; 
    376         var originalHeight = elem.offsetHeight; 
    377         s.display = originalDisplay; 
    378         s.position = originalPosition; 
    379         s.visibility = originalVisibility; 
     348        if (disp == 'none' || disp == '' || typeof(disp) == 'undefined') { 
     349            var s = elem.style; 
     350            var originalVisibility = s.visibility; 
     351            var originalPosition = s.position; 
     352            var originalDisplay = s.display; 
     353            s.visibility = 'hidden'; 
     354            s.position = 'absolute'; 
     355            s.display = ''; 
     356            var originalWidth = elem.offsetWidth; 
     357            var originalHeight = elem.offsetHeight; 
     358            s.display = originalDisplay; 
     359            s.position = originalPosition; 
     360            s.visibility = originalVisibility; 
     361        } else { 
     362            originalWidth = elem.offsetWidth || 0; 
     363            originalHeight = elem.offsetHeight || 0; 
     364        } 
     365        if (contentSize) { 
     366            originalWidth -= Math.round( 
     367                (parseFloat(self.getStyle(elem, 'paddingLeft')) || 0) 
     368              + (parseFloat(self.getStyle(elem, 'paddingRight')) || 0) 
     369              + (parseFloat(self.getStyle(elem, 'borderLeftWidth')) || 0) 
     370              + (parseFloat(self.getStyle(elem, 'borderRightWidth')) || 0) 
     371            ); 
     372            originalHeight -= Math.round( 
     373                (parseFloat(self.getStyle(elem, 'paddingTop')) || 0) 
     374              + (parseFloat(self.getStyle(elem, 'paddingBottom')) || 0) 
     375              + (parseFloat(self.getStyle(elem, 'borderTopWidth')) || 0) 
     376              + (parseFloat(self.getStyle(elem, 'borderBottomWidth')) || 0) 
     377            ); 
     378        } 
    380379        return new self.Dimensions(originalWidth, originalHeight); 
    381380    }, 
  • mochikit/trunk/MochiKit/Visual.js

    r1385 r1388  
    13651365    var v = MochiKit.Visual; 
    13661366    element = MochiKit.DOM.getElement(element); 
     1367    var elementDimensions = MochiKit.Style.getElementDimensions(element, true); 
    13671368    var oldStyle = { 
    13681369        position: s.getStyle(element, 'position'), 
     
    13871388        [new v.Scale(element, 200, 
    13881389            {sync: true, scaleFromCenter: options.scaleFromCenter, 
     1390             scaleMode: {originalHeight: elementDimensions.h, 
     1391                         originalWidth: elementDimensions.w}, 
    13891392             scaleContent: options.scaleContent, restoreAfterFinish: true}), 
    13901393         new v.Opacity(element, {sync: true, to: 0.0 })], 
     
    14001403    ***/ 
    14011404    var d = MochiKit.DOM; 
    1402     var s = MochiKit.Style; 
    14031405    element = d.getElement(element); 
     1406    var elementDimensions = MochiKit.Style.getElementDimensions(element, true); 
    14041407    var elemClip = d.makeClipping(element); 
    14051408    options = MochiKit.Base.update({ 
    14061409        scaleContent: false, 
    14071410        scaleX: false, 
    1408         scaleMode: {originalHeight: s.getElementHeight(element)
    1409             originalWidth: s.getElementWidth(element)}, 
     1411        scaleMode: {originalHeight: elementDimensions.h
     1412                    originalWidth: elementDimensions.w}, 
    14101413        restoreAfterFinish: true, 
    14111414        afterFinishInternal: function (effect) { 
     
    14271430    var s = MochiKit.Style; 
    14281431    element = d.getElement(element); 
     1432    var elementDimensions = s.getElementDimensions(element, true); 
    14291433    var elemClip; 
    14301434    options = MochiKit.Base.update({ 
     
    14321436        scaleX: false, 
    14331437        scaleFrom: 0, 
    1434         scaleMode: {originalHeight: s.getElementHeight(element)
    1435             originalWidth: s.getElementWidth(element)}, 
     1438        scaleMode: {originalHeight: elementDimensions.h
     1439                    originalWidth: elementDimensions.w}, 
    14361440        restoreAfterFinish: true, 
    14371441        afterSetupInternal: function (effect) { 
     
    14571461    var s = MochiKit.Style; 
    14581462    element = d.getElement(element); 
    1459     var oldOpacity = MochiKit.Style.getStyle(element, 'opacity'); 
     1463    var elementDimensions = s.getElementDimensions(element, true); 
     1464    var oldOpacity = s.getStyle(element, 'opacity'); 
    14601465    var elemClip; 
    14611466    options = MochiKit.Base.update({ 
     
    14671472        }, 
    14681473        afterFinishInternal: function (effect) { 
    1469             MochiKit.Style.hideElement(element); 
     1474            s.hideElement(element); 
    14701475            d.undoClipping(element, elemClip); 
    14711476            d.undoPositioned(element); 
    1472             MochiKit.Style.setStyle(element, {'opacity': oldOpacity}); 
     1477            s.setStyle(element, {'opacity': oldOpacity}); 
    14731478        } 
    14741479    }, options); 
     
    14811486                     { sync: true, duration: 0.43 * options.duration, 
    14821487                       scaleFromCenter: true, scaleX: false, 
    1483                        scaleMode: {originalHeight: s.getElementHeight(element)
    1484                          originalWidth: s.getElementWidth(element)}, 
     1488                       scaleMode: {originalHeight: elementDimensions.h
     1489                                   originalWidth: elementDimensions.w}, 
    14851490                       scaleContent: false, restoreAfterFinish: true })], 
    14861491        options); 
     
    15781583    d.removeEmptyTextNodes(element); 
    15791584    var oldInnerBottom = s.getStyle(element.firstChild, 'bottom') || 0; 
     1585    var elementDimensions = s.getElementDimensions(element, true); 
    15801586    var elemClip; 
    15811587    options = b.update({ 
     
    15831589        scaleX: false, 
    15841590        scaleFrom: 0, 
    1585         scaleMode: {originalHeight: s.getElementHeight(element)
    1586             originalWidth: s.getElementWidth(element)}, 
     1591        scaleMode: {originalHeight: elementDimensions.h
     1592                    originalWidth: elementDimensions.w}, 
    15871593        restoreAfterFinish: true, 
    15881594        afterSetupInternal: function (effect) { 
     
    15971603        }, 
    15981604        afterUpdateInternal: function (effect) { 
     1605            var elementDimensions = s.getElementDimensions(effect.element, true); 
    15991606            s.setStyle(effect.element.firstChild, 
    1600                {bottom: (effect.dims[0] - s.getElementHeight(effect.element)) + 'px'}); 
     1607               {bottom: (effect.dims[0] - elementDimensions.h) + 'px'}); 
    16011608        }, 
    16021609        afterFinishInternal: function (effect) { 
     
    16351642    d.removeEmptyTextNodes(element); 
    16361643    var oldInnerBottom = s.getStyle(element.firstChild, 'bottom'); 
     1644    var elementDimensions = s.getElementDimensions(element, true); 
    16371645    var elemClip; 
    16381646    options = b.update({ 
    16391647        scaleContent: false, 
    16401648        scaleX: false, 
    1641         scaleMode: {originalHeight: s.getElementHeight(element)
    1642             originalWidth: s.getElementWidth(element)}, 
     1649        scaleMode: {originalHeight: elementDimensions.h
     1650                    originalWidth: elementDimensions.w}, 
    16431651        scaleFrom: 100, 
    16441652        restoreAfterFinish: true, 
     
    16531661        }, 
    16541662        afterUpdateInternal: function (effect) { 
     1663            var elementDimensions = s.getElementDimensions(effect.element, true); 
    16551664            s.setStyle(effect.element.firstChild, 
    1656             {bottom: (effect.dims[0] - s.getElementHeight(effect.element)) + 'px'}); 
     1665                {bottom: (effect.dims[0] - elementDimensions.h) + 'px'}); 
    16571666        }, 
    16581667        afterFinishInternal: function (effect) { 
     
    16781687    var d = MochiKit.DOM; 
    16791688    var b = MochiKit.Base; 
    1680     var s = MochiKit.Style
     1689    var elementDimensions = MochiKit.Style.getElementDimensions(element, true)
    16811690    var elemClip; 
    16821691    options = b.update({ 
    16831692        restoreAfterFinish: true, 
    1684         scaleMode: {originalHeight: s.getElementHeight(element)
    1685             originalWidth: s.getElementWidth(element)}, 
     1693        scaleMode: {originalHeight: elementDimensions.w
     1694                    originalWidth: elementDimensions.h}, 
    16861695        beforeSetupInternal: function (effect) { 
    16871696            elemClip = d.makeClipping(effect.element); 
     
    17231732        opacity: s.getStyle(element, 'opacity') 
    17241733    }; 
    1725     var dims = {h: s.getElementHeight(element), 
    1726         w: s.getElementWidth(element)}; 
     1734    var dims = s.getElementDimensions(element, true); 
    17271735    var initialMoveX, initialMoveY; 
    17281736    var moveX, moveY; 
     
    17881796                 }), 
    17891797                 new v.Scale(effect.element, 100, { 
    1790                         scaleMode: {originalHeight: dims.h, originalWidth: dims.w}, 
     1798                        scaleMode: {originalHeight: dims.h, 
     1799                                    originalWidth: dims.w}, 
    17911800                        sync: true, 
    17921801                        scaleFrom: /Opera/.test(navigator.userAgent) ? 1 : 0, 
     
    18291838    }; 
    18301839 
    1831     var dims = {h: s.getElementHeight(element), 
    1832         w: s.getElementWidth(element)}; 
     1840    var dims = s.getElementDimensions(element, true); 
    18331841    var moveX, moveY; 
    18341842 
     
    19241932    var s = MochiKit.Style; 
    19251933    element = d.getElement(element); 
     1934    var elementDimensions = s.getElementDimensions(element, true); 
    19261935    var oldStyle = { 
    19271936        top: element.style.top, 
     
    19341943        scaleContent: false, 
    19351944        scaleX: false, 
    1936         scaleMode: {originalHeight: s.getElementHeight(element)
    1937             originalWidth: s.getElementWidth(element)}, 
     1945        scaleMode: {originalHeight: elementDimensions.h
     1946                    originalWidth: elementDimensions.w}, 
    19381947        afterFinishInternal: function (effect) { 
    19391948            new v.Scale(element, 1, { 
    19401949                scaleContent: false, 
    19411950                scaleY: false, 
    1942                 scaleMode: {originalHeight: s.getElementHeight(element)
    1943                     originalWidth: s.getElementWidth(element)}, 
     1951                scaleMode: {originalHeight: elementDimensions.h
     1952                            originalWidth: elementDimensions.w}, 
    19441953                afterFinishInternal: function (effect) { 
    19451954                    s.hideElement(effect.element); 
  • mochikit/trunk/doc/rst/MochiKit/Style.rst

    r1268 r1388  
    9090    specified as either a string with the element's ID or the element 
    9191    object itself. 
    92      
     92 
    9393    ``cssSelector``: 
    9494        The CSS selector, e.g. ``background-color``. 
     
    103103    specified as either a string with the element's ID or the element 
    104104    object itself. 
    105      
     105 
    106106    ``styles``: 
    107107        Dictionnary holding CSS properties to set, e.g. 
     
    122122 
    123123 
    124 :mochidef:`getElementDimensions(element)`: 
    125  
    126     Return the absolute pixel width and height (including padding and border, 
    127     but not margins) of ``element`` as an object with ``w`` and ``h`` 
    128     properties, or ``undefined`` if ``element`` is not in the document. 
    129     ``element`` may be specified as a string to be looked up with 
    130     :mochiref:`getElement`, a DOM element, or trivially as an object with 
    131     ``w`` and/or ``h`` properties. 
     124:mochidef:`getElementDimensions(element[, contentSize=false])`: 
     125 
     126    Return the absolute pixel width and height of ``element`` as an object with 
     127    ``w`` and ``h`` properties, or ``undefined`` if ``element`` is not in the 
     128    document. The size will include padding and border, but not margins, unless 
     129    ``contentSize`` is set to true, in which case the size will be only the 
     130    content size, without padding and border. ``element`` may be specified as 
     131    a string to be looked up with :mochiref:`getElement`, a DOM element, or 
     132    trivially as an object with ``w`` and/or ``h`` properties. 
    132133 
    133134    *Availability*: 
     
    276277:mochidef:`Coordinates(x, y)`: 
    277278 
    278     Constructs an object with ``x`` and ``y`` properties. ``obj.toString()``  
     279    Constructs an object with ``x`` and ``y`` properties. ``obj.toString()`` 
    279280    returns something like ``{x: 0, y: 42}`` for debugging. 
    280281 
    281282    *Availability*: 
    282283        Available in MochiKit 1.4+ 
    283          
     284 
    284285:mochidef:`Dimensions(w, h)`: 
    285286 
    286     Constructs an object with ``w`` and ``h`` properties. ``obj.toString()``  
     287    Constructs an object with ``w`` and ``h`` properties. ``obj.toString()`` 
    287288    returns something like ``{w: 0, h: 42}`` for debugging. 
    288289 
  • mochikit/trunk/examples/effects/effects_combi.css

    r1383 r1388  
    77    margin-right: 10px; 
    88    margin-bottom: 10px; 
    9     width: 120px; 
    10     height: 120px; 
    11        border: 1px solid #669; 
     9    width: 112px; 
     10    height: 112px; 
     11    border: 4px solid #669; 
    1212    background-color: #ccf; 
    1313    text-align: center; 
  • mochikit/trunk/examples/effects/effects_onload.html

    r1184 r1388  
    88    <script src="../../MochiKit/Position.js" type="text/javascript"></script> 
    99    <script src="../../MochiKit/Visual.js" type="text/javascript"></script> 
     10</head> 
    1011<body> 
    1112<h1>script.aculo.us Effects functional test file</h1> 
     
    1516<div id="debug"> </div> 
    1617 
    17 <a href="#" onclick="MochiKit.Visual.slideDown('d1'); return false;">asdasd</a> 
     18<a href="#" onclick="MochiKit.Visual.slideDown('d1'); return false;">slide down</a> 
    1819 
    1920<div id="d1" onclick="MochiKit.Visual.slideUp('d1');" style="overflow:hidden;"><div  style="background-color:#ff8080;"> 
     
    5455  pulsate 
    5556</div> 
    56        
     57 
    5758<script type="text/javascript" language="javascript" charset="utf-8"> 
    5859// <![CDATA[ 
     
    6162  MochiKit.Visual.blindDown("d1"); 
    6263// ]]> 
    63 </script>     
     64</script> 
    6465 
    6566</body> 
  • mochikit/trunk/examples/effects/effects_slide.html

    r1184 r1388  
    33<head> 
    44<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    5 <title>Untitled Document</title> 
     5<title>Slide effects test</title> 
    66<style type="text/css"> 
    77#menu { 
     
    2424  width: 100%; 
    2525  bottom: 0px; 
    26   height: 15px; 
    2726  text-align: center; 
    2827  display: block; 
     
    3837  <div class="menu_block_container" id="menu_block_container1"> 
    3938    <div class="menu_block" id="menu_block1"><div> 
    40             text<br
    41         text<br
    42         text<br
    43         text<br
    44         text<br
    45         text<br
    46         text<br
     39            text<br/
     40        text<br/
     41        text<br/
     42        text<br/
     43        text<br/
     44        text<br/
     45        text<br/
    4746        <a class="close_block" onClick="MochiKit.Visual.slideUp('menu_block1'); return false;">close</a></div></div> 
    4847  </div> 
     
    5049  <div class="menu_block_container" id="menu_block_container2"> 
    5150    <div class="menu_block" id="menu_block2"><div> 
    52             text<br
    53         text<br
    54         text<br
    55         text<br
    56         text<br
    57         text<br
    58         text<br
     51            text<br/
     52        text<br/
     53        text<br/
     54        text<br/
     55        text<br/
     56        text<br/
     57        text<br/
    5958        <a class="close_block" onClick="MochiKit.Visual.slideUp('menu_block2'); return false;">close</a></div></div> 
    6059  </div> 
  • mochikit/trunk/tests/test_MochiKit-Style.html

    r1373 r1388  
     1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    12<html> 
    23<head> 
     
    89    <script type="text/javascript" src="../MochiKit/Color.js"></script> 
    910    <script type="text/javascript" src="../MochiKit/Logging.js"></script> 
    10     <script type="text/javascript" src="SimpleTest/SimpleTest.js"></script>         
     11    <script type="text/javascript" src="SimpleTest/SimpleTest.js"></script> 
    1112    <link rel="stylesheet" type="text/css" href="SimpleTest/test.css"> 
    1213</head> 
    1314<body style="border: 0; margin: 0; padding: 0;"> 
    1415 
    15 <div id="styleTest" style="position: absolute; left: 400px; top: 100px; width: 100px; height: 100px; background: rgb(255, 0, 0); opacity: 0.5; filter: alpha(opacity=50); font-size: 10px">TEST<span id="styleSubTest">SUB</span><div id="floatTest" style="float: left;">Float</div></div> 
     16<div id="styleTest" style="position: absolute; left: 400px; top: 100px; width: 100px; height: 80px; padding: 10px 20px 30px 40px; border-width: 1px 2px 3px 4px; border-style: solid; border-color: background: rgb(0, 255, 0); background: rgb(255, 0, 0); opacity: 0.5; filter: alpha(opacity=50); font-size: 10px">TEST<span id="styleSubTest">SUB</span><div id="floatTest" style="float: left;">Float</div></div> 
    1617 
    1718<pre id="test"> 
     
    2425    is(pos.x, 400, 'initial x position'); 
    2526    is(pos.y, 100, 'initial y position'); 
    26      
     27 
    2728    // moved 
    2829    var newPos = new MochiKit.Style.Coordinates(500, 200); 
     
    3738    is(pos.x, 400, 'updated x position (using relativeTo parameter)'); 
    3839    is(pos.y, 100, 'updated y position (using relativeTo parameter)'); 
    39      
     40 
    4041    // Coordinates object 
    4142    pos = getElementPosition({x: 123, y: 321}); 
    4243    is(pos.x, 123, 'passthrough x position'); 
    4344    is(pos.y, 321, 'passthrough y position'); 
    44      
     45 
    4546    // Coordinates object with relativeTo 
    4647    pos = getElementPosition({x: 123, y: 321}, {x: 100, y: 50}); 
    4748    is(pos.x, 23, 'passthrough x position (using relativeTo parameter)'); 
    4849    is(pos.y, 271, 'passthrough y position (using relativeTo parameter)'); 
    49      
    50     pos = getElementPosition('garbage');  
    51     is(typeof(pos), 'undefined',  
     50 
     51    pos = getElementPosition('garbage'); 
     52    is(typeof(pos), 'undefined', 
    5253        'invalid element should return an undefined position'); 
    53      
     54 
    5455    // Only set one coordinate 
    5556    setElementPosition('styleTest', {'x': 300}); 
     
    5758    is(pos.x, 300, 'updated only x position'); 
    5859    is(pos.y, 200, 'not updated y position'); 
    59      
     60 
    6061    var mc = MochiKit.Color.Color; 
    6162    var red = mc.fromString('rgb(255,0,0)'); 
    6263    var color = null; 
    63      
     64 
    6465    color = mc.fromString(getStyle('styleTest', 'background-color')); 
    65     is(color.toHexString(), red.toHexString(),  
     66    is(color.toHexString(), red.toHexString(), 
    6667        'test getStyle selector case'); 
    67         
     68 
    6869    color = mc.fromString(getStyle('styleTest', 'backgroundColor')); 
    69     is(color.toHexString(), red.toHexString(),  
     70    is(color.toHexString(), red.toHexString(), 
    7071        'test getStyle camel case'); 
    7172 
    72     is(getStyle('styleSubTest', 'font-size'), '10px',  
     73    is(getStyle('styleSubTest', 'font-size'), '10px', 
    7374        'test computed getStyle selector case'); 
    74         
    75     is(getStyle('styleSubTest', 'fontSize'), '10px',  
     75 
     76    is(getStyle('styleSubTest', 'fontSize'), '10px', 
    7677        'test computed getStyle camel case'); 
    7778 
    78     is(eval(getStyle('styleTest', 'opacity')), 0.5,  
     79    is(eval(getStyle('styleTest', 'opacity')), 0.5, 
    7980        'test getStyle opacity'); 
    8081 
    8182    is(getStyle('styleTest', 'opacity'), 0.5, 'test getOpacity'); 
    82      
     83 
    8384    setStyle('styleTest', {'opacity': 0.2}); 
    8485    is(getStyle('styleTest', 'opacity'), 0.2, 'test setOpacity'); 
     
    102103 
    103104    var dims = getElementDimensions('styleTest'); 
    104     is(dims.w, 100, 'getElementDimensions w ok'); 
    105     is(dims.h, 100, 'getElementDimensions h ok'); 
     105    is(dims.w, 166, 'getElementDimensions w ok'); 
     106    is(dims.h, 124, 'getElementDimensions h ok'); 
     107 
     108    dims = getElementDimensions('styleTest', true); 
     109    is(dims.w, 100, 'getElementDimensions content w ok'); 
     110    is(dims.h, 80, 'getElementDimensions content h ok'); 
    106111 
    107112    setElementDimensions('styleTest', {'w': 200, 'h': 150}); 
    108     dims = getElementDimensions('styleTest'); 
     113    dims = getElementDimensions('styleTest', true); 
    109114    is(dims.w, 200, 'setElementDimensions w ok'); 
    110115    is(dims.h, 150, 'setElementDimensions h ok'); 
    111116 
    112117    setElementDimensions('styleTest', {'w': 150}); 
    113     dims = getElementDimensions('styleTest'); 
     118    dims = getElementDimensions('styleTest', true); 
    114119    is(dims.w, 150, 'setElementDimensions only w ok'); 
    115120    is(dims.h, 150, 'setElementDimensions h not updated ok'); 
    116121 
    117122    hideElement('styleTest'); 
    118     dims = getElementDimensions('styleTest'); 
     123    dims = getElementDimensions('styleTest', true); 
    119124    is(dims.w, 150, 'getElementDimensions w ok when display none'); 
    120125    is(dims.h, 150, 'getElementDimensions h ok when display none'); 
     
    136141 
    137142    ok( true, "test suite finished!"); 
    138      
    139      
     143 
     144 
    140145} catch (err) { 
    141      
     146 
    142147    var s = "test suite failure!\n"; 
    143148    var o = {};