Reimplement anchor navigation via Javascript
This commit is contained in:
		
							parent
							
								
									ecc599d097
								
							
						
					
					
						commit
						6c29f86115
					
				|  | @ -0,0 +1,15 @@ | ||||||
|  | window.addEventListener('load', () => { | ||||||
|  |     const headers = Array.from(document.querySelectorAll('h1, h2, h3, h4, h5, h6')); | ||||||
|  |     const scrollTargetIndex = window.location.href.search(/#[A-z0-9-_]*$/); | ||||||
|  |     for (let i=1; i < headers.length; i++){ | ||||||
|  |         const headerId = headers[i].innerText.replace(/[ ]/g,'-').toLowerCase() | ||||||
|  |         headers[i].setAttribute('id', headerId); | ||||||
|  |         headers[i].addEventListener('click', () => | ||||||
|  |             window.location.href = window.location.href.substring(0, scrollTargetIndex) + `#${headerId}`); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (scrollTargetIndex > -1) { | ||||||
|  |         const scrollTarget = window.location.href.substring(scrollTargetIndex + 1); | ||||||
|  |         document.getElementById(scrollTarget).scrollIntoView({ behavior: "smooth" }); | ||||||
|  |     } | ||||||
|  | }); | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
|     font-size: 2.5rem; |     font-size: 2.5rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|     border-bottom: 1px solid #9f916a; |     border-bottom: 1px solid #9f916a; | ||||||
|  |     cursor: pointer; | ||||||
|     width: 100%; |     width: 100%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -14,6 +15,7 @@ | ||||||
|     font-size: 2rem; |     font-size: 2rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|     border-bottom: 1px solid #9f916a; |     border-bottom: 1px solid #9f916a; | ||||||
|  |     cursor: pointer; | ||||||
|     width: 100%; |     width: 100%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -21,22 +23,26 @@ | ||||||
|     font-size: 1.75rem; |     font-size: 1.75rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|     text-align: left; |     text-align: left; | ||||||
|  |     cursor: pointer; | ||||||
|     width: 100%; |     width: 100%; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #tutorial-wrapper h4{ | #tutorial-wrapper h4{ | ||||||
|     font-size: 1.5rem; |     font-size: 1.5rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|  |     cursor: pointer; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #tutorial-wrapper h5{ | #tutorial-wrapper h5{ | ||||||
|     font-size: 1.25rem; |     font-size: 1.25rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|  |     cursor: pointer; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #tutorial-wrapper h6{ | #tutorial-wrapper h6{ | ||||||
|     font-size: 1.25rem; |     font-size: 1.25rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|  |     cursor: pointer; | ||||||
|     color: #434343; |     color: #434343; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| {% block head %} | {% block head %} | ||||||
|     <title>Setup Tutorial</title> |     <title>Setup Tutorial</title> | ||||||
|     <link rel="stylesheet" type="text/css" href="{{ static_autoversion("styles/tutorial.css") }}" /> |     <link rel="stylesheet" type="text/css" href="{{ static_autoversion("styles/tutorial.css") }}" /> | ||||||
|  |     <script type="application/ecmascript" src="{{ static_autoversion("assets/tutorial.js") }}"></script> | ||||||
| {% endblock %} | {% endblock %} | ||||||
| 
 | 
 | ||||||
| {% block body %} | {% block body %} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue