35 lines
		
	
	
		
			608 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			608 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <script>
 | |
| 
 | |
| headings = [];
 | |
| 
 | |
| onload = function(){
 | |
|   headings = document.querySelectorAll('h2');
 | |
| };
 | |
| 
 | |
| onscroll = function(e){
 | |
|   var heading = find(window.scrollY);
 | |
|   if (!heading) return;
 | |
|   var links = document.querySelectorAll('#menu a')
 | |
|     , link;
 | |
| 
 | |
|   for (var i = 0, len = links.length; i < len; ++i) {
 | |
|     link = links[i];
 | |
|     link.className = link.getAttribute('href') == '#' + heading.id
 | |
|       ? 'active'
 | |
|       : '';
 | |
|   }
 | |
| };
 | |
| 
 | |
| function find(y) {
 | |
|   var i = headings.length
 | |
|     , heading;
 | |
| 
 | |
|   while (i--) {
 | |
|     heading = headings[i];
 | |
|     if (y >= heading.offsetTop) {
 | |
|       return heading;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | 
