Решение Raj_89 является наиболее близким к действительному варианту, хотя, как упомянул Кевин Свартс в комментарии, оно собирается сломать IE, что является проблемой для большого числа корпоративных клиентов (и говорит вашему клиенту, что вы не будете писать код для IE«потому что причины» вряд ли порадуют вашего начальника;)).
Итак, я поиграл с этим, и вот в чем проблема: событие «onmousedown» выбрасывает соответствие в IE, поэтому мы хотим предотвратить дефолт, когда пользователь впервые щелкает по раскрывающемуся списку.,Важно, что это только время, когда мы делаем это: если мы предотвращаем сброс по умолчанию при следующем щелчке, когда пользователь делает свой выбор, событие onchange не сработает.
Таким образом, мы получаем хороший выпадающий список, без мерцания,не ломая IE - просто работает ... хорошо, по крайней мере, в IE10 и выше, и последних версиях всех других основных браузеров.
<p>Which is the most annoing browser of them all:</p>
<select id="sel" size = "1">
<option></option>
<option>IE 9</option>
<option>IE 10</option>
<option>Edge</option>
<option>Firefox</option>
<option>Chrome</option>
<option>Opera</option>
</select>
Вот скрипка: https://jsfiddle.net/88cxzhom/27/
Еще несколько вещей, на которые следует обратить внимание: 1) Абсолютное позиционирование и установка z-index полезны, чтобы избежать перемещения других элементов, когда параметрыотображается.2) Используйте свойство currentTarget - это будет элемент select во всех браузерах.Хотя в IE будет выбран 'target', остальные фактически позволят вам работать с опцией.
Надеюсь, это кому-нибудь поможет.