Sha256: ae5af03b8d023d8c3e6acbe393070d5da8651eca7c1dcfee7b40943013c1e564
Contents?: true
Size: 1.97 KB
Versions: 66
Compression:
Stored size: 1.97 KB
Contents
jQuery(function() { var $sidebar = $('.sidebar'), $content = $('.content'), $tutorial = $('.tutorial-content'), $window = $(window), offset = $content.offset().top + 60; var found = true; var $el; var href = $sidebar.find('a').first().attr("href"); if (href !== undefined && href.charAt(0) === "#") { setActiveSidebarLink(); $(window).on("scroll", function() { throttle(function(){ setActiveSidebarLink(); setSidebar(); }, 100)(); }); } function setSidebar() { var offset = 102, bottom = $tutorial.offset().top + $tutorial.outerHeight() - $sidebar.outerHeight() - offset; if (window.scrollY > bottom) { $sidebar.css("position", "absolute").css("top", $tutorial.outerHeight() - $sidebar.outerHeight()); } else if (window.scrollY > $tutorial.offset().top) { $sidebar.css("position", "fixed").css("top", offset); } else { $sidebar.css("position", "absolute").css("top", offset); } } function setActiveSidebarLink() { $('.sidebar a').removeClass('active'); var $closest = getClosestHeader(); $closest.addClass('active'); } }); function getClosestHeader() { var $links = $('.sidebar a'), top = window.scrollY, $last = $links.first(), $content = $(".tutorial-content"); //console.log(top); if (top < 300) { return $last; } if (top + window.innerHeight >= $content.offset().top + $content.height()) { return $links.last(); } for (var i = 0; i < $links.length; i++) { var $link = $links.eq(i), href = $link.attr("href"); if (href !== undefined && href.charAt(0) === "#" && href.length > 1) { var $anchor = $(href); if ($anchor.length > 0) { var offset = $anchor.offset(); if (top < offset.top - (window.innerHeight / 2)) { return $last; } $last = $link; } } } return $last; } function throttle (callback, limit) { var wait = false; return function () { if (!wait) { callback.apply(null, arguments); wait = true; setTimeout(function () { wait = false; }, limit); } }; }
Version data entries
66 entries across 66 versions & 1 rubygems