Changeset 1388
- Timestamp:
- 06/21/08 11:48:04 (4 months ago)
- Files:
-
- mochikit/trunk/MochiKit/Style.js (modified) (5 diffs)
- mochikit/trunk/MochiKit/Visual.js (modified) (19 diffs)
- mochikit/trunk/doc/rst/MochiKit/Style.rst (modified) (4 diffs)
- mochikit/trunk/examples/effects/effects_combi.css (modified) (1 diff)
- mochikit/trunk/examples/effects/effects_onload.html (modified) (4 diffs)
- mochikit/trunk/examples/effects/effects_slide.html (modified) (4 diffs)
- mochikit/trunk/tests/test_MochiKit-Style.html (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/trunk/MochiKit/Style.js
r1383 r1388 124 124 } else if (elem.currentStyle) { 125 125 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 } 126 136 } 127 137 } … … 130 140 } 131 141 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)) { 133 143 if (MochiKit.Style.getStyle(elem, 'position') == 'static') { 134 144 value = 'auto'; … … 137 147 138 148 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;165 149 }, 166 150 … … 350 334 351 335 /** @id MochiKit.Style.getElementDimensions */ 352 getElementDimensions: function (elem ) {336 getElementDimensions: function (elem, contentSize/*optional*/) { 353 337 var self = MochiKit.Style; 354 338 var dom = MochiKit.DOM; … … 362 346 var disp = self.getStyle(elem, 'display'); 363 347 // 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 } 380 379 return new self.Dimensions(originalWidth, originalHeight); 381 380 }, mochikit/trunk/MochiKit/Visual.js
r1385 r1388 1365 1365 var v = MochiKit.Visual; 1366 1366 element = MochiKit.DOM.getElement(element); 1367 var elementDimensions = MochiKit.Style.getElementDimensions(element, true); 1367 1368 var oldStyle = { 1368 1369 position: s.getStyle(element, 'position'), … … 1387 1388 [new v.Scale(element, 200, 1388 1389 {sync: true, scaleFromCenter: options.scaleFromCenter, 1390 scaleMode: {originalHeight: elementDimensions.h, 1391 originalWidth: elementDimensions.w}, 1389 1392 scaleContent: options.scaleContent, restoreAfterFinish: true}), 1390 1393 new v.Opacity(element, {sync: true, to: 0.0 })], … … 1400 1403 ***/ 1401 1404 var d = MochiKit.DOM; 1402 var s = MochiKit.Style;1403 1405 element = d.getElement(element); 1406 var elementDimensions = MochiKit.Style.getElementDimensions(element, true); 1404 1407 var elemClip = d.makeClipping(element); 1405 1408 options = MochiKit.Base.update({ 1406 1409 scaleContent: false, 1407 1410 scaleX: false, 1408 scaleMode: {originalHeight: s.getElementHeight(element),1409 originalWidth: s.getElementWidth(element)},1411 scaleMode: {originalHeight: elementDimensions.h, 1412 originalWidth: elementDimensions.w}, 1410 1413 restoreAfterFinish: true, 1411 1414 afterFinishInternal: function (effect) { … … 1427 1430 var s = MochiKit.Style; 1428 1431 element = d.getElement(element); 1432 var elementDimensions = s.getElementDimensions(element, true); 1429 1433 var elemClip; 1430 1434 options = MochiKit.Base.update({ … … 1432 1436 scaleX: false, 1433 1437 scaleFrom: 0, 1434 scaleMode: {originalHeight: s.getElementHeight(element),1435 originalWidth: s.getElementWidth(element)},1438 scaleMode: {originalHeight: elementDimensions.h, 1439 originalWidth: elementDimensions.w}, 1436 1440 restoreAfterFinish: true, 1437 1441 afterSetupInternal: function (effect) { … … 1457 1461 var s = MochiKit.Style; 1458 1462 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'); 1460 1465 var elemClip; 1461 1466 options = MochiKit.Base.update({ … … 1467 1472 }, 1468 1473 afterFinishInternal: function (effect) { 1469 MochiKit.Style.hideElement(element);1474 s.hideElement(element); 1470 1475 d.undoClipping(element, elemClip); 1471 1476 d.undoPositioned(element); 1472 MochiKit.Style.setStyle(element, {'opacity': oldOpacity});1477 s.setStyle(element, {'opacity': oldOpacity}); 1473 1478 } 1474 1479 }, options); … … 1481 1486 { sync: true, duration: 0.43 * options.duration, 1482 1487 scaleFromCenter: true, scaleX: false, 1483 scaleMode: {originalHeight: s.getElementHeight(element),1484 originalWidth: s.getElementWidth(element)},1488 scaleMode: {originalHeight: elementDimensions.h, 1489 originalWidth: elementDimensions.w}, 1485 1490 scaleContent: false, restoreAfterFinish: true })], 1486 1491 options); … … 1578 1583 d.removeEmptyTextNodes(element); 1579 1584 var oldInnerBottom = s.getStyle(element.firstChild, 'bottom') || 0; 1585 var elementDimensions = s.getElementDimensions(element, true); 1580 1586 var elemClip; 1581 1587 options = b.update({ … … 1583 1589 scaleX: false, 1584 1590 scaleFrom: 0, 1585 scaleMode: {originalHeight: s.getElementHeight(element),1586 originalWidth: s.getElementWidth(element)},1591 scaleMode: {originalHeight: elementDimensions.h, 1592 originalWidth: elementDimensions.w}, 1587 1593 restoreAfterFinish: true, 1588 1594 afterSetupInternal: function (effect) { … … 1597 1603 }, 1598 1604 afterUpdateInternal: function (effect) { 1605 var elementDimensions = s.getElementDimensions(effect.element, true); 1599 1606 s.setStyle(effect.element.firstChild, 1600 {bottom: (effect.dims[0] - s.getElementHeight(effect.element)) + 'px'});1607 {bottom: (effect.dims[0] - elementDimensions.h) + 'px'}); 1601 1608 }, 1602 1609 afterFinishInternal: function (effect) { … … 1635 1642 d.removeEmptyTextNodes(element); 1636 1643 var oldInnerBottom = s.getStyle(element.firstChild, 'bottom'); 1644 var elementDimensions = s.getElementDimensions(element, true); 1637 1645 var elemClip; 1638 1646 options = b.update({ 1639 1647 scaleContent: false, 1640 1648 scaleX: false, 1641 scaleMode: {originalHeight: s.getElementHeight(element),1642 originalWidth: s.getElementWidth(element)},1649 scaleMode: {originalHeight: elementDimensions.h, 1650 originalWidth: elementDimensions.w}, 1643 1651 scaleFrom: 100, 1644 1652 restoreAfterFinish: true, … … 1653 1661 }, 1654 1662 afterUpdateInternal: function (effect) { 1663 var elementDimensions = s.getElementDimensions(effect.element, true); 1655 1664 s.setStyle(effect.element.firstChild, 1656 {bottom: (effect.dims[0] - s.getElementHeight(effect.element)) + 'px'});1665 {bottom: (effect.dims[0] - elementDimensions.h) + 'px'}); 1657 1666 }, 1658 1667 afterFinishInternal: function (effect) { … … 1678 1687 var d = MochiKit.DOM; 1679 1688 var b = MochiKit.Base; 1680 var s = MochiKit.Style;1689 var elementDimensions = MochiKit.Style.getElementDimensions(element, true); 1681 1690 var elemClip; 1682 1691 options = b.update({ 1683 1692 restoreAfterFinish: true, 1684 scaleMode: {originalHeight: s.getElementHeight(element),1685 originalWidth: s.getElementWidth(element)},1693 scaleMode: {originalHeight: elementDimensions.w, 1694 originalWidth: elementDimensions.h}, 1686 1695 beforeSetupInternal: function (effect) { 1687 1696 elemClip = d.makeClipping(effect.element); … … 1723 1732 opacity: s.getStyle(element, 'opacity') 1724 1733 }; 1725 var dims = {h: s.getElementHeight(element), 1726 w: s.getElementWidth(element)}; 1734 var dims = s.getElementDimensions(element, true); 1727 1735 var initialMoveX, initialMoveY; 1728 1736 var moveX, moveY; … … 1788 1796 }), 1789 1797 new v.Scale(effect.element, 100, { 1790 scaleMode: {originalHeight: dims.h, originalWidth: dims.w}, 1798 scaleMode: {originalHeight: dims.h, 1799 originalWidth: dims.w}, 1791 1800 sync: true, 1792 1801 scaleFrom: /Opera/.test(navigator.userAgent) ? 1 : 0, … … 1829 1838 }; 1830 1839 1831 var dims = {h: s.getElementHeight(element), 1832 w: s.getElementWidth(element)}; 1840 var dims = s.getElementDimensions(element, true); 1833 1841 var moveX, moveY; 1834 1842 … … 1924 1932 var s = MochiKit.Style; 1925 1933 element = d.getElement(element); 1934 var elementDimensions = s.getElementDimensions(element, true); 1926 1935 var oldStyle = { 1927 1936 top: element.style.top, … … 1934 1943 scaleContent: false, 1935 1944 scaleX: false, 1936 scaleMode: {originalHeight: s.getElementHeight(element),1937 originalWidth: s.getElementWidth(element)},1945 scaleMode: {originalHeight: elementDimensions.h, 1946 originalWidth: elementDimensions.w}, 1938 1947 afterFinishInternal: function (effect) { 1939 1948 new v.Scale(element, 1, { 1940 1949 scaleContent: false, 1941 1950 scaleY: false, 1942 scaleMode: {originalHeight: s.getElementHeight(element),1943 originalWidth: s.getElementWidth(element)},1951 scaleMode: {originalHeight: elementDimensions.h, 1952 originalWidth: elementDimensions.w}, 1944 1953 afterFinishInternal: function (effect) { 1945 1954 s.hideElement(effect.element); mochikit/trunk/doc/rst/MochiKit/Style.rst
r1268 r1388 90 90 specified as either a string with the element's ID or the element 91 91 object itself. 92 92 93 93 ``cssSelector``: 94 94 The CSS selector, e.g. ``background-color``. … … 103 103 specified as either a string with the element's ID or the element 104 104 object itself. 105 105 106 106 ``styles``: 107 107 Dictionnary holding CSS properties to set, e.g. … … 122 122 123 123 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. 132 133 133 134 *Availability*: … … 276 277 :mochidef:`Coordinates(x, y)`: 277 278 278 Constructs an object with ``x`` and ``y`` properties. ``obj.toString()`` 279 Constructs an object with ``x`` and ``y`` properties. ``obj.toString()`` 279 280 returns something like ``{x: 0, y: 42}`` for debugging. 280 281 281 282 *Availability*: 282 283 Available in MochiKit 1.4+ 283 284 284 285 :mochidef:`Dimensions(w, h)`: 285 286 286 Constructs an object with ``w`` and ``h`` properties. ``obj.toString()`` 287 Constructs an object with ``w`` and ``h`` properties. ``obj.toString()`` 287 288 returns something like ``{w: 0, h: 42}`` for debugging. 288 289 mochikit/trunk/examples/effects/effects_combi.css
r1383 r1388 7 7 margin-right: 10px; 8 8 margin-bottom: 10px; 9 width: 1 20px;10 height: 1 20px;11 border: 1px solid #669;9 width: 112px; 10 height: 112px; 11 border: 4px solid #669; 12 12 background-color: #ccf; 13 13 text-align: center; mochikit/trunk/examples/effects/effects_onload.html
r1184 r1388 8 8 <script src="../../MochiKit/Position.js" type="text/javascript"></script> 9 9 <script src="../../MochiKit/Visual.js" type="text/javascript"></script> 10 </head> 10 11 <body> 11 12 <h1>script.aculo.us Effects functional test file</h1> … … 15 16 <div id="debug"> </div> 16 17 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> 18 19 19 20 <div id="d1" onclick="MochiKit.Visual.slideUp('d1');" style="overflow:hidden;"><div style="background-color:#ff8080;"> … … 54 55 pulsate 55 56 </div> 56 57 57 58 <script type="text/javascript" language="javascript" charset="utf-8"> 58 59 // <![CDATA[ … … 61 62 MochiKit.Visual.blindDown("d1"); 62 63 // ]]> 63 </script> 64 </script> 64 65 65 66 </body> mochikit/trunk/examples/effects/effects_slide.html
r1184 r1388 3 3 <head> 4 4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 5 <title> Untitled Document</title>5 <title>Slide effects test</title> 6 6 <style type="text/css"> 7 7 #menu { … … 24 24 width: 100%; 25 25 bottom: 0px; 26 height: 15px;27 26 text-align: center; 28 27 display: block; … … 38 37 <div class="menu_block_container" id="menu_block_container1"> 39 38 <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/> 47 46 <a class="close_block" onClick="MochiKit.Visual.slideUp('menu_block1'); return false;">close</a></div></div> 48 47 </div> … … 50 49 <div class="menu_block_container" id="menu_block_container2"> 51 50 <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/> 59 58 <a class="close_block" onClick="MochiKit.Visual.slideUp('menu_block2'); return false;">close</a></div></div> 60 59 </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"> 1 2 <html> 2 3 <head> … … 8 9 <script type="text/javascript" src="../MochiKit/Color.js"></script> 9 10 <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> 11 12 <link rel="stylesheet" type="text/css" href="SimpleTest/test.css"> 12 13 </head> 13 14 <body style="border: 0; margin: 0; padding: 0;"> 14 15 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> 16 17 17 18 <pre id="test"> … … 24 25 is(pos.x, 400, 'initial x position'); 25 26 is(pos.y, 100, 'initial y position'); 26 27 27 28 // moved 28 29 var newPos = new MochiKit.Style.Coordinates(500, 200); … … 37 38 is(pos.x, 400, 'updated x position (using relativeTo parameter)'); 38 39 is(pos.y, 100, 'updated y position (using relativeTo parameter)'); 39 40 40 41 // Coordinates object 41 42 pos = getElementPosition({x: 123, y: 321}); 42 43 is(pos.x, 123, 'passthrough x position'); 43 44 is(pos.y, 321, 'passthrough y position'); 44 45 45 46 // Coordinates object with relativeTo 46 47 pos = getElementPosition({x: 123, y: 321}, {x: 100, y: 50}); 47 48 is(pos.x, 23, 'passthrough x position (using relativeTo parameter)'); 48 49 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', 52 53 'invalid element should return an undefined position'); 53 54 54 55 // Only set one coordinate 55 56 setElementPosition('styleTest', {'x': 300}); … … 57 58 is(pos.x, 300, 'updated only x position'); 58 59 is(pos.y, 200, 'not updated y position'); 59 60 60 61 var mc = MochiKit.Color.Color; 61 62 var red = mc.fromString('rgb(255,0,0)'); 62 63 var color = null; 63 64 64 65 color = mc.fromString(getStyle('styleTest', 'background-color')); 65 is(color.toHexString(), red.toHexString(), 66 is(color.toHexString(), red.toHexString(), 66 67 'test getStyle selector case'); 67 68 68 69 color = mc.fromString(getStyle('styleTest', 'backgroundColor')); 69 is(color.toHexString(), red.toHexString(), 70 is(color.toHexString(), red.toHexString(), 70 71 'test getStyle camel case'); 71 72 72 is(getStyle('styleSubTest', 'font-size'), '10px', 73 is(getStyle('styleSubTest', 'font-size'), '10px', 73 74 'test computed getStyle selector case'); 74 75 is(getStyle('styleSubTest', 'fontSize'), '10px', 75 76 is(getStyle('styleSubTest', 'fontSize'), '10px', 76 77 'test computed getStyle camel case'); 77 78 78 is(eval(getStyle('styleTest', 'opacity')), 0.5, 79 is(eval(getStyle('styleTest', 'opacity')), 0.5, 79 80 'test getStyle opacity'); 80 81 81 82 is(getStyle('styleTest', 'opacity'), 0.5, 'test getOpacity'); 82 83 83 84 setStyle('styleTest', {'opacity': 0.2}); 84 85 is(getStyle('styleTest', 'opacity'), 0.2, 'test setOpacity'); … … 102 103 103 104 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'); 106 111 107 112 setElementDimensions('styleTest', {'w': 200, 'h': 150}); 108 dims = getElementDimensions('styleTest' );113 dims = getElementDimensions('styleTest', true); 109 114 is(dims.w, 200, 'setElementDimensions w ok'); 110 115 is(dims.h, 150, 'setElementDimensions h ok'); 111 116 112 117 setElementDimensions('styleTest', {'w': 150}); 113 dims = getElementDimensions('styleTest' );118 dims = getElementDimensions('styleTest', true); 114 119 is(dims.w, 150, 'setElementDimensions only w ok'); 115 120 is(dims.h, 150, 'setElementDimensions h not updated ok'); 116 121 117 122 hideElement('styleTest'); 118 dims = getElementDimensions('styleTest' );123 dims = getElementDimensions('styleTest', true); 119 124 is(dims.w, 150, 'getElementDimensions w ok when display none'); 120 125 is(dims.h, 150, 'getElementDimensions h ok when display none'); … … 136 141 137 142 ok( true, "test suite finished!"); 138 139 143 144 140 145 } catch (err) { 141 146 142 147 var s = "test suite failure!\n"; 143 148 var o = {};
