Auto hide/show navigation or toolbar on scroll is a popular feature especially when it comes to small screens. In angularJS 1.x this can be done with directive. So in order to show - hide toolbar on page scroll down or up we can do this:
In this case we are using material design built in toolbar and directive named hideShowToolbar is assigned to id:
                    <md-content layout="column" layout-fill id="main-content"> 
     <md-toolbar hide-show-toolbar layout="row" layout-wrap toolbar="main" class="md-theme-indigo">
          <!--... some toolbar elements-->
     </md-toolbar> 
</md-content>
                  
                
The directive for auto hide toolbar on element scroll will look like this:
                    app.directive('hideShowToolbar',['$rootScope','$window',function($rootScope,$window){
		return {
			restrict:'AE',
			link:function(scope, element, attr){ 
				// get element which will be scrolled
 				var scrollParent = angular.element(document.querySelector('md-content[md-scroll-y]'));
 				// set var for last scroll and ofset
				var lastScroll = 0;
				var offset = 15;
				// get toolbar height
				var toolbarHeight = element[0].clientHeight;
 
				// move content from top for toolbar height
				scrollParent[0].style.paddingTop = toolbarHeight+'px';
 				// add class with css styles to tollbar
					element.addClass("hideShowToolbar");
				// on parent scroll call fn to show/hide toolbar
				scrollParent.on('scroll', function(){
					setTimeout(function() {
						showHideToolbar();
					}, 250);
				});
				function showHideToolbar(){
					// get scroll pos
					var scrollNum = Math.round(scrollParent[0].scrollTop); 
					//exit if it is less than ofset (delay)
					if(Math.abs(lastScroll - scrollNum) <= offset){
         				return;
					}
					// add remove class for scrolling
						if (scrollNum > lastScroll && scrollNum > toolbarHeight){
	  
							if(!element.hasClass("hideToolbar")){
								element.removeClass("showToolbar");
								element.addClass("hideToolbar");
	  
							}
						}else{
							if(!element.hasClass("showToolbar")){
								element.removeClass("hideToolbar");
								element.addClass("showToolbar");
							}
						}
					// set lastScroll to last scroll number
					lastScroll = scrollNum;
				}
			}
		}
	}]);
                  
                
In case you are using window scroll try this directive:
                    app.directive('hideShowToolbar',['$rootScope','$window','$timeout',function($rootScope,$window,$timeout){
		return {
			restrict:'AE',
			link:function(scope, element, attr){ 
				$timeout(function(){
					// get element which will be scrolled 
	 				var contentEl = angular.element(document.querySelector('.wrapper-element'));
 
	 				// set var for last scroll and ofset
					var lastScroll = 0;
					var offset = 15;
					// get toolbar height
					var toolbarHeight = element[0].clientHeight; 
	 
					// move content from top for toolbar height
					//contentEl[0].style.paddingTop = toolbarHeight+'px';
					document.getElementById("main-content").style.paddingTop  = toolbarHeight+'px';
	 				// add class with css styles to tollbar
						element.addClass("hideShowToolbar");
					// on windows scroll
 					window.onscroll = function() { 
 	 					showHideToolbar();
 	 				};
 
					function showHideToolbar(){
	 
						// get scroll pos
 						var scrollNum = window.scrollY;
						//exit if it is less than ofset (delay)
						if(Math.abs(lastScroll - scrollNum) <= offset){
	         				return;
						}
						// add remove class for scrolling
							if (scrollNum > lastScroll && scrollNum > toolbarHeight){
		  
								if(!element.hasClass("hideToolbar")){
									element.removeClass("showToolbar");
									element.addClass("hideToolbar");
		  
								}
							}else{
								if(!element.hasClass("showToolbar")){
									element.removeClass("hideToolbar");
									element.addClass("showToolbar");
								}
							}
						// set lastScroll to last scroll number
						lastScroll = scrollNum;
					}
				});
			}
		}
	}]);
                  
                And css will be used only to use animation for moving down/up navigation bar:
                    
                
                    .hideShowToolbar{
		-webkit-transition: all .5s ease-in-out !important;
		-moz-transition: all .5s ease-in-out !important;
		-o-transition: all .5s ease-in-out !important;
		transition: all .5s ease-in-out !important;
		position: fixed;
		top:0px;
	} 
	.hideToolbar {
 		-webkit-transform: translateY(-100%);
		-ms-transform: translateY(-100%);
		-o-transform: translateY(-100%);
		transform: translateY(-100%);
	}
	.showToolbar{
		-webkit-transform: translateY(0%);
		-ms-transform: translateY(0%);
		-o-transform: translateY(0%);
		transform: translateY(0%);
	}
                  
                 
                     
         
                            
                        
                            
                                 
                            
                        
                            
                                 
                            
                        
                            
                                 
                            
                        
                            
                                