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!