Исправлен Div при прокрутке, но не над нижним колонтитулом

#jquery #html #css #angular

#jquery #HTML #css #угловой

Вопрос:

Мне нужно, чтобы div менял положение на фиксированное после прокрутки заголовка вне поля зрения. Но мне также нужно, чтобы div не выходил за нижний колонтитул внизу. Я начал с директивы angular для первой части, но не могу понять, как предотвратить переход div через нижний колонтитул.

Я попытался добавить немного jquery, но он работает не идеально, плюс я хотел чисто угловое решение, если это возможно:

  var a=$(document).scrollTop() window.innerHeight;
 var b=$('#footer').offset().top;

          if($('#cart').offset().top   $('#cart').height()
            >= $('#footer').offset().top - 20){
            $( "#cart" ).removeClass( "top-position-cart" )
            $('#cart').css('bottom', (10 (a-b)) 'px');
          }else{
              $( "#cart" ).addClass( "fixed-cart" );
            }
  
         var directive = {
            restrict: 'A',
            scope: {
                offset: '@',
                scrollClass: '@'
            },
            link: function (scope, element) {
                angular.element($window).bind('scroll', function () {
                    if (this.pageYOffset >= parseInt(scope.offset)) {
                        element.addClass(scope.scrollClass);
                  } else {
                        element.removeClass(scope.scrollClass);
                  }
                });
            }
        };
  
   <div id="cart" change-class-on-scroll offset="380" 
       scroll-class="fixed-cart top-position-cart>

  </div>

  
 .fixed-cart {
    position: fixed;
}
.top-position-cart {
  top: 15px;
}
  

Комментарии:

1. Пожалуйста, поделитесь каким-нибудь фрагментом кода или скриптом для пояснения. Спасибо