2017-11-17 3 views
0

Ich habe ein Bildlaufverhalten zu einem Formular mit Javascript hinzugefügt: Sobald ich auf ein Formularelement klicke, wird die Seite zu diesem Element gescrollt.Gibt es eine Möglichkeit, auf einen Klick auf ein <select> Element zu reagieren, bevor das Menü geöffnet wird?

Es ist fast gut funktioniert ... durch diese JQuery Verarbeitung auf Klick der formular Elemente:

$('html, body').animate({scrollTop: $(formularElement).offset().top - window.innerHeight/2 }, 500); 

Wenn ich das select-Element klicken, wird zuerst das Menü angezeigt und dann die Seite scrollt, während das Auswahlmenü bleibt, wo es ist.

  • Gibt es eine Möglichkeit, etwas Code zu verarbeiten, bevor das Menü angezeigt wird?
  • Oder könnte ich vielleicht verhindern, das Menü zu öffnen, dann scrollen und nach Codecode öffnen, nachdem das Seitenrollen verarbeitet wurde?
  • Oder gibt es eine Möglichkeit, das Fenster zu verschieben, das der Browser für das select-Element öffnet?

Antwort

0

Ich habe onclick und onselect eingeschlossen, um Ihnen zu helfen, zu unterscheiden; Wenn es dir nicht hilft, werde ich entfernen;

document.getElementById('drop_down').onchange = changed; 
 
document.getElementById('drop_down').onclick = clicked; 
 

 
function changed() { 
 
alert('on changed') 
 
document.getElementById('drop_down').click(); 
 
} 
 

 
function clicked(e) { 
 
e.preventDefault(); 
 
alert('on clicked') 
 
}
<select name="" id="drop_down" > 
 
<option value="choose">Please choose</option> 
 
<option value="option 1">option 1</option> 
 
<option value="option 2">option 2</option> 
 
<option value="option 3">option 3</option> 
 
<option value="option 4">option 4</option> 
 
</select>

+0

Danke, aber sollte das Scrollen passieren, wenn ein Element ... tut es also bei Änderung helfen nicht angeklickt wird nicht. –

+0

hat eine kleine Verbesserung vorgenommen; Wird dir das helfen? –

+0

Ich bin mir nicht sicher .... warum es sollte. Probieren Sie das Beispiel hier aus ... die preventDefault() -Methode verhindert nicht das Öffnen des Auswahlmenüs, so dass meine Seite immer noch wegscrollt .... –

Verwandte Themen