@zwezew

Как реализовать скролл страницы вверх до координат определенного элемента?

Как реализовать скролл страницы вверх до координат определенного элемента?
Необходимо при нажатии на кнопку, проскроллить ее вверх к границе указанного блока (т.е. координатам блока/его позиции, не знаю, как правильнее).

Пробовал вариант
jQuery(document).ready(function(){
 
    // при клике по элементу
    $("element").click(function(){
        
        // определяем высоту экрана
        var screenHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
        // определяем координату верхнего угла div, к нижней границе которого будем скроллить
        var blockTopPosition = document.querySelector('block').offsetTop;
        // определяем высоту div, к нижней границе которого будем скролить
        var blockHeight = document.querySelector('block').offsetHeight;
        // определяем координату нижней границы div, к которому нужно скролить
        var blockBottomPosition = blockTopPosition + blockHeight - screenHeight;
        // скроллим с помощью scrollTop к координате нижней границы div и анимируем сие действие
        $('body').animate({"scrollTop":blockBottomPosition},'slow'); 
 
    });
 
});

Но в итоге получается отрицательное число, что приводит к несрабатыванию (при замене на положительное - работает криво)
  • Вопрос задан
  • 1319 просмотров
Решения вопроса 1
@smithana
Всё намного проще

$('element').on('click', function(){
    $('html, body').animate({
        scrollTop: $('target').offset().top
     }, 500);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы