JQuery: переместить окно окна просмотра, чтобы показать только что переработанный элемент
У меня есть фрагмент jQuery в готовом документе, который переключает div, содержащий textarea
:
$('div#addnote-area').hide(); // hide the div
$('a#addnote-link').click(function() { // click event listener on link
$('div#addnote-area').toggle(); // toggle the hidden div
});
Переключатель отлично работает при нажатии на ссылку. У меня проблема в том, что если div#addnote-area
находится ниже текущего div#addnote-area
просмотра браузера, оно остается там, когда оно отображается. Мне бы хотелось, чтобы пользовательский курсор переместился на текстовую область, и чтобы вся текстовая область была видна в окне.
![Click here to see an image]()
Ответы
Ответ 1
Просмотрите scrollTo jQuery plugin. Вы можете просто сделать что-то вроде этого:
$.scrollTo('div#addnote-area');
Или, если вы хотите оживить его, укажите число миллисекунд для прокрутки до последнего:
$.scrollTo('div#addnote-area', 500);
Ответ 2
Без плагина scrollTo
$(window).scrollTop($('div#addnote-area').offset().top)
РЕДАКТИРОВАТЬ: Ну, я получу много очков из этого старого ответа:)
Здесь бонус, это также может быть анимировано.
Просто используйте функцию animate()
и настройте тег тела:
$('body').animate({scrollTop:$('div#addnote-area').offset().top},500)
Попробуйте использовать Stackoverflow! Откройте консоль инспектора и запустите
$('body').animate({scrollTop:$('#footer').offset().top},500)
Ответ 3
jQuery scrollTop
также работает. Попробуйте установить:
$('#idOfElement').css('scrollTop', 10)
Вы можете легко получить высоту/ширину, используя $(...).offset()
.