Clicking TOC links changes hash fragment (#2019)
* Fix smooth scroll breaking back button #1767 * Change URL's hash fragment when clicking on TOC * Switch from hashchange to popstate event handler This seems to have better behavior with the Forward button, on page load, and always scrolls in the right direction. Close #1767
This commit is contained in:
parent
2784b3ad43
commit
33551c8cdb
2 changed files with 25 additions and 6 deletions
|
@ -61,8 +61,27 @@ $(document).ready(function() {
|
||||||
}, 400);
|
}, 400);
|
||||||
});
|
});
|
||||||
|
|
||||||
// init smooth scroll
|
// Smooth scrolling
|
||||||
$("a").smoothScroll({ offset: -20 });
|
|
||||||
|
// Bind popstate event listener to support back/forward buttons.
|
||||||
|
$(window).bind("popstate", function (event) {
|
||||||
|
$.smoothScroll({
|
||||||
|
scrollTarget: location.hash,
|
||||||
|
offset: -20
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// Override clicking on links to smooth scroll
|
||||||
|
$('a[href*="#"]').bind("click", function (event) {
|
||||||
|
if (this.pathname === location.pathname && this.hash) {
|
||||||
|
event.preventDefault();
|
||||||
|
history.pushState(null, null, this.hash);
|
||||||
|
$(window).trigger("popstate");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Smooth scroll on page load if there is a hash in the URL.
|
||||||
|
if (location.hash) {
|
||||||
|
$(window).trigger("popstate");
|
||||||
|
}
|
||||||
|
|
||||||
// add lightbox class to all image links
|
// add lightbox class to all image links
|
||||||
$(
|
$(
|
||||||
|
|
8
assets/js/main.min.js
vendored
8
assets/js/main.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue