Задать вопрос
  • Как сделать якорь с плавающим отступом сверху?

    dyuriev
    @dyuriev
    A posteriori
    top = $(div).offset().top - 100;

    у вас до данной позиции (значение top) скролл идет, экспериментируйте

    upd: прочитал невнимательно, сравнивайте текущее положение и если $(div).offset().top меньше текущего, то есть скролл вверх, то -100, если больше, то есть скролл вниз, то -200

    upd2: js не практикую, но должно быть что-то вроде этого:
    $(document).ready(function(){
      $("#menu").on("click","a", function (event) {
        event.preventDefault();
        var div = $(this).attr('href');
        var top = $(div).offset().top;
        var pos = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
    
        var delta = (top > pos) ? 200 : 100;
      
        top = top-delta;
        $('body,html').animate({scrollTop: top}, 1000);
      });
      
    });
    Ответ написан
    5 комментариев