transitions and backgrounds crossbrowser.

elem.remove() -> elem.parentNode.removeChild(elem)