OpenLayers - redrawing map after container resize
You need to call the API to update map size.
http://dev.openlayers.org/docs/files/OpenLayers/Map-js.html#OpenLayers.Map.updateSize
Here's how we do it
window.onresize = function()
{
setTimeout( function() { map.updateSize();}, 200);
}
You can see we did a slight delay, and honestly I don't remember the exact reason why, but we had to give it a slight wait before calling API to resize itself.
Yes, use map.updateSize() as Vadim says (also not sure why the delay!) documentation
I commonly put a fullscreen toggle button on maps, which works simply by switching the css class of the map container and then calling updateSize()
function toggleFullScreen(mapContainer) {
if ($(mapContainer).hasClass("normal")) {
$(mapContainer).addClass("fullscreen").removeClass("normal");
} else {
$(mapContainer).addClass("normal").removeClass("fullscreen");
}
map.updateSize();
}
Another comment to the first (correct) answer:
The timeout-Event is needed if you wait for the window.resize event. Otherwise the map will be resized every millisecond if a user starts resizing the window (i needed it for Firefox). Therefore if you want to check for Window-size, then the timeout is quite useful resp. needed. See: https://stackoverflow.com/questions/5489946/jquery-how-to-wait-for-the-end-or-resize-event-and-only-then-perform-an-ac or jQuery resize end event
(sorry, i can't add a comment, therefore another answer)