Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Lay Theme Forum

  1. Home
  2. General Discussion
  3. Definitive guide to 'Smooth scroll to anchors from menu'

Definitive guide to 'Smooth scroll to anchors from menu'

Scheduled Pinned Locked Moved General Discussion
2 Posts 2 Posters 700 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    s.alc
    wrote on last edited by
    #1

    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!

    1 Reply Last reply
    2
    • mariusjopenM Offline
      mariusjopenM Offline
      mariusjopen
      Global Moderator
      wrote on last edited by
      #2

      Dear @Hantverk
      ah wow!
      Thank you for sharing!

      So we can refer to your post in case :-)

      Best!

      Marius

      www.mariusjopen.world

      1 Reply Last reply
      0
      • P person5 referenced this topic on
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      I also code custom websites or custom Lay features.
      šŸ’æ Email me here: šŸ’æ
      info@laytheme.com

      Before you post:
      1. When using a WordPress Cache plugin, disable it or clear your cache.
      2. Update Lay Theme and all Lay Theme Addons
      3. Disable all Plugins
      4. 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:
      1. Post a link to where the problem is
      2. Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
      3. If the problem is difficult to explain, post screenshots / link to a video to explain it
      Online Users
      A
      alasdair17
      Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com
      laytheme.com
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Recent
      • Tags
      • Popular
      • Users
      • Search