2017-01-02 4 views
2

Ich habe ein verstecktes Eingabefeld, innerhalb einer Tabelle td, und wenn ich Option A wähle, möchte ich, dass der Browser zu dem sichtbaren Eingang scrollt, der sich in einem table td befindet. Ich habe Code versucht, aber etwas funktioniert nicht richtig. ID des Eingabefeldes: #id_a-1-hostScrollen zu verdecktem Element

jQuery('html,body').animate({scrollTop: jQuery('#id_a-1-host').offset().top},'slow'); 

Es scrollt nach unten, aber nur ein wenig. Es scrollt nicht nach unten zum Eingabefeld.

+0

die ID die td selbst geben. – Jai

+0

Hallo! Es funktioniert nicht, ID an die td zu geben; (. – Tony

+0

@Jai Sie können nicht navigieren, indem Sie "ID" zu geben "' ... –

Antwort

2

Die scrollTop basiert auf der Sichtbarkeit und wenn Sie es ausgeblendet haben, mit display: none, ist es nicht im Ansichtsfenster verfügbar, so dass es nicht wie erwartet funktioniert. Es ist immer besser, einen benannten Anker in diesen Fällen zu verwenden:

<a name="id-a-off" id="id-a-off"> 

Oder sogar eine leere Spanne tun:

<span name="id-a-off" id="id-a-off"></span> 

Stellen Sie sicher, dies in einem statischen Elternteil ist.

Auch, wenn Sie einen statischer Header oder etwas eingerichtet haben, müssen Sie diese Höhe hinzufügen auch:

jQuery('html,body').animate({ 
    scrollTop: jQuery('#id_a-1-host').offset().top - staticHeaderHeight 
}, 'slow'); 
+0

Hallo! Ich habe name = "id-a-off" auf dem Eingang , aber ist kein aa-Tag oder ein span. Es unterscheidet sich nicht, wenn ich staticHeaderHeight verwende. – Tony

+0

@Tony Wie hast du 'staticHeaderHeight' benutzt? –

+0

Ich habe mit var getestet staticHeaderHeight = jQuery (window) .height() - 250; – Tony

Verwandte Themen