Changeset 6475
- Timestamp:
- 03/27/07 18:04:59 (1 year ago)
- Files:
-
- spinoffs/prototype/trunk/CHANGELOG (modified) (1 diff)
- spinoffs/prototype/trunk/src/dom.js (modified) (1 diff)
- spinoffs/prototype/trunk/test/unit/dom.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
spinoffs/prototype/trunk/CHANGELOG
r6474 r6475 1 1 *SVN* 2 3 * Fix an issue with Element.getDimensions with some element types on non IE-browsers. Closes #7683. [Andrew Dupont] 2 4 3 5 * Fix Form.disable to work again on non-form elements. Closes #6887. [Mislav Marohnić] spinoffs/prototype/trunk/src/dom.js
r6385 r6475 347 347 var display = $(element).getStyle('display'); 348 348 if (display != 'none' && display != null) // Safari bug 349 return { width: element.offsetWidth, height: element.offsetHeight};350 349 return { width: element.offsetWidth, height: element.offsetHeight }; 350 351 351 // All *Width and *Height properties give 0 on elements with display none, 352 352 // so enable the element temporarily 353 var els = element.style; 354 var originalVisibility = els.visibility; 355 var originalPosition = els.position; 356 var originalDisplay = els.display; 357 els.visibility = 'hidden'; 358 els.position = 'absolute'; 359 els.display = 'block'; 360 var originalWidth = element.clientWidth; 353 var els = element.style, original = {}; 354 355 $w('display position visibility height width').each( function(name) { 356 original[name] = els[name]; 357 }); 358 359 els.visibility = 'hidden'; 360 els.display = 'block'; 361 362 Position.absolutize(element); 363 var originalWidth = element.clientWidth; 361 364 var originalHeight = element.clientHeight; 362 els.display = originalDisplay; 363 els.position = originalPosition; 364 els.visibility = originalVisibility; 365 return {width: originalWidth, height: originalHeight}; 365 Position.relativize(element); 366 367 $w('display position visibility height width').each( function(name) { 368 els[name] = original[name] || ''; 369 }); 370 return { width: originalWidth, height: originalHeight }; 366 371 }, 367 372 spinoffs/prototype/trunk/test/unit/dom.html
r6385 r6475 254 254 </table> 255 255 256 <div id="dimensions-nester" style="width: 500px;"> 257 <div id="dimensions-nestee" style="display: none">This is a nested DIV. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div> 258 </div> 259 260 256 261 <p id="test-empty"></p> 257 262 <p id="test-empty-but-contains-whitespace"> … … 827 832 assertIdentical(100, $('dimensions-display-none-pos-abs').getDimensions().height); 828 833 assertIdentical(200, $('dimensions-display-none-pos-abs').getDimensions().width); 834 835 assert($('dimensions-nestee').getDimensions().width <= 500, 'check for proper dimensions of hidden child elements'); 829 836 830 837 $('dimensions-td').hide();