2017-01-02 3 views
2

У меня есть скрытое поле ввода внутри таблицы td, и когда я выбираю параметр A, я хочу, чтобы браузер прокручивался вниз до этого видимого входа, который находится внутри table td. Я пробовал код ниже, но что-то не работает правильно. ID поля ввода: #id_a-1-hostПрокрутите до скрытого элемента

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

Он прокручивает вниз, но только немного. Он не прокручивается до поля ввода.

+0

дать идентификатор к самому тд. – Jai

+0

Привет! Его не работает, чтобы указать ID для td; (. – Tony

+0

@Jai Вы не можете перемещаться, указав 'id' на' '... –

ответ

2

scrollTop основан на видимости, и если у вас есть скрытый текст, используя display: none, он недоступен в окне просмотра, поэтому он не будет работать должным образом. Всегда лучше использовать именованный якорь в этих случаях:

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

Или даже пустая оболочка будет делать:

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

Убедитесь, что это находится в статическом родителю.

Кроме того, если у вас есть статический заголовок или что-то создать, нужно добавить, что высота, а также:

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

Привет! У меня есть имя =" id-a-off "на входе , но не является тегом aa или диапазоном.Он не отличается, если я использую staticHeaderHeight. – Tony

+0

@Tony Как вы использовали 'staticHeaderHeight'? –

+0

Я тестировал с var staticHeaderHeight = jQuery (window) .height() - 250; – Tony

Смежные вопросы