Das ist „Art“ mögliche, aber nicht trivial, und Sie müssen möglicherweise einige Managements der Wirkung zu tun, wie ich hier zu tun in dem „change "Ereignis für die Auswahl. Nicht perfekt, aber vielleicht kann dir das einen Anfang geben.
Beachten Sie, dass Sie nur den "Fokus" auf die Auswahl oder verwenden möchten, setzen Sie die sichtbare Größe wie hier, setzen Sie die Auswahlgröße auf die Änderung auf 0 mit event.target.size = 0;
und so weiter.
das Markup ein wenig überarbeitet, um die Click-Handler zu ermöglichen:
<div id="clicker">clicker</div>
<select class='form-control' id='opts'>
<option selected disabled></option>
<option>Contacto</option>
<option>Entrevista</option>
<option>Prensa</option>
<option>Conferencias</option>
</select>
Hier ist das Skript, wie gesagt, nicht perfekt, aber Sie können entscheiden, wie Sie die Änderung Griff/Click Ereignisse.
window.onload = function() {
var id = "clicker";
var div = document.getElementById(id);
var select = document.getElementById("opts");
div.onclick = function(event) {
console.log('clicker div');
select.size = select.options.length;
select.focus();
};
select.onclick = function(event) {
console.log('opt clicked');
};
select.onchange = function(event) {
console.log('opt change');
var index = event.target.selectedIndex;
console.log(index);
event.target.size = index + 2;
};
}
Hier ist eine Geige Sie Sie verwenden können, um den Einstieg: https://jsfiddle.net/MarkSchultheiss/mL0b7ubr/
Beachten Sie, wenn Sie die „Standard“ Größe für die Auswahl verwenden möchten Sie, dass wie so erkennen kann:
if (event.target.type == "select-one") {
event.target.size = 1;
} else {
event.target.size = 4;
}
Hier ist eine Geige mit dieser Änderung und ein bisschen sauberer auf dem Ereignisanhang: https://jsfiddle.net/MarkSchultheiss/mL0b7ubr/1/