When several properties of a DOM (Document Object Model) element must be modified, each style or content change will generate a repaint or a reflow. It is therefore usually more economical to:
- make the element invisible (set display to none) (1 reflow)
- modify the element properties and then make it visible again (1 reflow)
Thus resulting in a maximum of 2 reflows.
Proceed as follows:
var elem = document.getElementById('foo');
elem.style.display = 'none'; // Generate 1 reflow
elem.style.width = '10em';
elem.style.height = 'auto';
// ... other changes...
elem.style.display = 'block'; // Generate 1 reflow
In the end, only 2 reflows are needed instead of potentially 6 or 7.