JQuery. Как вернуть на исходное положение страницу?

На сайте есть блок с тортами
Есть кнопка "Показать еще" - она показывает/скрывает скрытые блоки.
На телефонах, после скрытия блоков пользователь оказывается далеко внизу. Как сделать так чтобы он оказывался на месте этой кнопки после скрытия всех блоков?

Обработчик на кнопке:
$('#cakes .btn-more').click(function(e) {
        e.preventDefault();
        if ($("#cakes .hidden-item").is(":hidden")) {
            $("#cakes .hidden-item").fadeIn(100);
            $(this).text("Скрыть");
        } else {
            $("#cakes .hidden-item").fadeIn(100);
            $(this).text("Показать еще").slideToggle('#more');
        }
        return false;
    });
  • Вопрос задан
  • 462 просмотра
Пригласить эксперта
Ответы на вопрос 2
Используйте данную библиотеку jquery.scrollTo.

https://github.com/flesler/jquery.scrollTo
Ответ написан
webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...
Началу блока прописать анкор
<span id="cakes">Якорь, до которого нужно осуществить переход.</span>

и крутить страницу к нему при втором клике
$('html,body').stop().animate({ scrollTop: $('#cakes').offset().top }, 500);

Что-то вроде такого должно выйти:
$('#cakes .btn-more').click(function(e) {
        e.preventDefault();
        if ($("#cakes .hidden-item").is(":hidden")) {
            $("#cakes .hidden-item").fadeIn(100);
            $(this).text("Скрыть");
        } else {
            $("#cakes .hidden-item").fadeIn(100);
            $(this).text("Показать еще").slideToggle('#more');
            $('html,body').stop().animate({ scrollTop: $('#cakes').offset().top }, 1000);
        }
        return false;
    });
Ответ написан
Ваш ответ на вопрос

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

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