Explanation

In IE11, setting selectedIndex of a SELECT with display:none will corrupt its scroll position.

Demonstration

  1. Click "option e" in the list.
  2. Use the list's scrollbar so "option e" is scrolled out of view.
  3. Click "display='none'".
  4. Click "selectedIndex=selectedIndex".
  5. Click "display=''".
  6. Move the mouse over the list, and note that the highlighted option is out of sync with the mouse cursor position.
  7. Click the down arrow on the scroll bar.
  8. Note that the list jumped to the "correct" position instead of just scrolling one line, and now everything is normal again.