Как лучше прокрутить окно браузера для расширения элементов?
-
05-07-2019 - |
Вопрос
Что я хочу сделать, так это прокрутить окно вниз, когда я разверну элементы на своей странице. Р>
Эффект, которого я пытаюсь достичь, подобен комментариям переполнения стека. Если он выходит за пределы страницы, он прокручивается вниз, чтобы вместить все комментарии в окне.
Каков наилучший способ сделать это?
Изменить. Я использую JQuery.
Решение
Этот плагин JQuery хорошо работал для меня: http://demos.flesler.com/jquery/scrollTo/
Другие советы
Если у вас есть преимущество использования Prototype, вы можете использовать $ (element) .scrollTo ()
.
В противном случае общая идея состоит в том, чтобы рассчитать совокупное смещение элемента, а затем установить соответственно window.scrollTop
(и window.scrollLeft
).
Вы можете сделать это с помощью Scriptaculous (построено поверх Прототип ):
new Effect.ScrollTo('someDiv',{...some parameters...})
Он дает вам более точное управление, чем один только Prototype (задержка перед запуском, длительность и события обратного вызова (например, afterFinish), которые позволяют вам запускать другие эффекты или что угодно, что вы выбираете. не прыгать.
Если вы знаете, каким будет следующий элемент в источнике, вы можете просто перейти к этому элементу (location.href = " # ... "). Это будет использовать «прокрутку» браузера и не использовать библиотеки.
Вы можете использовать этот код, который в порядке, но не идеален. Основано на предложении blonkm
function scrollTo( Selector ){
$(Selector).before("<a name='scroll' id='scroll'></a>");
document.location.hash = 'scroll';
$('scroll').remove();
}
Это должно сработать. Требуется jQuery, но вы уже сказали, что используете это. Р>