Как лучше всего прокручивать окно браузера для раскрытия элементов?

Я хочу прокручивать окно вниз, когда разворачиваю элементы на своей странице.

Эффект, которого я пытаюсь достичь, похож на комментарии Stack Overflow. Если он выходит за пределы страницы, он прокручивается вниз, чтобы уместить все комментарии в окне.

Как лучше всего это сделать?

Обновлено: я использую JQuery.

Вы используете какую-либо конкретную библиотеку javascript?

MDCore 29.10.2008 15:52

Тем, у кого есть Safari, может понравиться это: gesteves.com/experiments/starwars.html

Michael Durrant 13.11.2011 06:26
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
731
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Если у вас есть преимущество использования Prototype, вы можете использовать $(element).scrollTo().

В противном случае общая идея состоит в том, чтобы вычислить совокупное смещение элемента, а затем соответственно установить window.scrollTopwindow.scrollLeft).

Вы можете сделать это красиво с помощью Священный (построенного поверх Прототип):

new Effect.ScrollTo('someDiv',{...some parameters...})

Он дает вам более тонкий контроль, чем один только Prototype (задержка перед запуском, продолжительность и события обратного вызова (например, afterFinish), которые позволяют запускать другие эффекты или все, что вы выберете. Вы можете заставить его прокручиваться плавно и красиво, чтобы страница не внезапно Прыжок.

Ответ принят как подходящий

Этот плагин jQuery мне понравился: http://demos.flesler.com/jquery/scrollTo/

Если вы знаете, какой будет следующий элемент в источнике, вы можете просто перейти к этому элементу (location.href = "# ..."). Это будет использовать собственную «прокрутку» браузера и не использовать никаких библиотек.

Вы можете использовать этот код, который хорош, но не идеален. На основе предложения blonkm

function scrollTo( Selector ){
  $(Selector).before("<a name='scroll' id='scroll'></a>");
  document.location.hash = 'scroll';
  $('scroll').remove();
}

Это должно сработать. Требуется jQuery, но вы уже сказали, что используете его.

Другие вопросы по теме