Difference between revisions of "Template:Waterloo/JS/header"

 
(3 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
var scrollLinks = {};
 
var scrollLinks = {};
 
var scroll_top_duration = 700;
 
var scroll_top_duration = 700;
 +
var nav_buffer = 24;
  
 
// fills in lower nav with inner page links
 
// fills in lower nav with inner page links
Line 30: Line 31:
 
                 var aid = scrollLinks[obj.text];
 
                 var aid = scrollLinks[obj.text];
 
                 var aTag = $('#'+aid);
 
                 var aTag = $('#'+aid);
 +
                var scroll_location = 0;
 +
                if ($(aTag).position().top - nav_buffer > 0){
 +
                    scroll_location = $(aTag).position().top - nav_buffer;
 +
                }
 +
                else {
 +
                    scroll_location = 0;
 +
                }
 
$('body,html').animate({
 
$('body,html').animate({
scrollTop: $(aTag).position().top,
+
scrollTop: scroll_location,
 
}, scroll_top_duration
 
}, scroll_top_duration
 
);
 
);
Line 40: Line 48:
 
     }
 
     }
 
});
 
});
 
// for smooth scrolling
 
function scrollToAnchor(aid){
 
    var aTag = $('#'+aid);
 
    if(aTag.length){
 
      $('html, body').animate({scrollTop:$(aTag).position().top}, 'slow');
 
    }
 
}
 

Latest revision as of 19:57, 17 September 2015

// scripts for header

// detects scroll for top resizing and lower nav show $(window).scroll(function() {

 if ($(document).scrollTop() > 50) {
   $('.main-nav').addClass('shrink');
   if ($('#inner-page-links').children().length > 0 && window.innerWidth > 768) {
     $('.navbar-lower').removeClass('hide-lower');
   }
 } else {
   $('.main-nav').removeClass('shrink');
   $('.navbar-lower').addClass('hide-lower');
 }

});

var scrollLinks = {}; var scroll_top_duration = 700; var nav_buffer = 24;

// fills in lower nav with inner page links $(document).ready(function(){

   $('.accordion-heading').addClass('link');
   $('section').addClass('link');
   $('.link').each(function(i, obj) {
$("#inner-page-links").append('
  • <a href="#" class="scroll-link">'+obj.title+'</a>
  • ');
           scrollLinks[obj.title] = obj.id;
       });
       $(".scroll-link").each(function(i, obj) {
           $(obj).on('click', function(event){
    

    event.preventDefault();

                   var aid = scrollLinks[obj.text];
                   var aTag = $('#'+aid);
                   var scroll_location = 0;
                   if ($(aTag).position().top - nav_buffer > 0){
                       scroll_location = $(aTag).position().top - nav_buffer;
                   }
                   else {
                       scroll_location = 0;
                   }
    

    $('body,html').animate({ scrollTop: scroll_location, }, scroll_top_duration ); });

       });
       if ($('#inner-page-links').children().length < 1 || window.innerWidth <= 768) {
           $('.navbar-lower').addClass('hide-lower');
       }
    

    });