Definitive guide to 'Smooth scroll to anchors from menu'
-
Hi fellow Lay users,
I've been searching this forum for a working solution to smooth scroll to anchor points from the menu, e.g. if you want to use the website as a single page type, but didn't find a definitive guide or solution. So I figured something out that actually works out of the box. I'm not a programmer, so i'm sure there are more streamlined solutions to achieve the same, but I wanted to share this solution because have the feeling more people are looking for a clear way to achieve this.
1. Add this code to 'Custom <head> content' under Lay options > 'Custom CSS & HTML':
<script>
jQuery(document).ready(function(){
jQuery('li.menu-item a').addClass('scrollTo');
});
</script>This adds the class 'scrollTo' to every menu item 'a'
(instead of the 'li' which happens when you try to add a class from the Wordpress menu editor)2. Add this code to 'Custom HTML at bottom':
<script>
jQuery(document).ready(function(){
jQuery('body').on('click', '.scrollTo', function(event) {
event.preventDefault();
var id = jQuery(this).attr('href');
jQuery('html, body').animate( { scrollTop: jQuery(id).offset().top }, 350 );
});
})
</script>This enables smooth scrolling to every anchor you create in the page.
You want this to happen after the 'scrollTo' class is added to the menu 'a',
that's why it's loaded at the bottom of the HTML.
Good luck!
-
Dear @Hantverk
ah wow!
Thank you for sharing!So we can refer to your post in case :-)
Best!
Marius
-
Before you post:
- When using a WordPress Cache plugin, disable it or clear your cache.
- Update Lay Theme and all Lay Theme Addons
- Disable all Plugins
- Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code", click "Save Changes"
This often solves issues you might run into
When you post:
- Post a link to where the problem is
- Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
- If the problem is difficult to explain, post screenshots / link to a video to explain it