I had a bit of a battle in trying to figure out how to add a simple “back-to-top” Javascript button to Hugo. There is not much help to be found at discourse.gohugo.io therefore I’m adding this to my knowledge base for future reference.
I will be using the button from https://github.com/vfeskov/vanilla-back-to-top.
Steps in Hugo
- Make a new folder in `
/static`; I made a new folder named `js`. - Create a new file called `toppy.js` and add the following to it:
addBackToTop({ diameter: 56, backgroundColor: 'rgb(250,76, 76)', textColor: '#fff' }) - Download the file vanilla-back-to-top.min.js and save it to `
/static/js`. My theme is a heavily customised version of beautifulhugo so I just tend to do things directly in my themes folders. - Edit `
/layouts/partials/footer.html` and link back to the two JS files. Add these two lines to the bottom: <script defer language="javascript" type="text/javascript" src="{{ "/js/vanilla-back-to-top.min.js" | urlize | relURL }}"></script> <script defer language="javascript" type="text/javascript" src="{{ "/js/toppy.js" | urlize | relURL }}"></script>
The button is now live. I wanted two quick customisations so I made my changes.
- In my css, I added a bit of opacity to the button:
#back-to-top{opacity:0.7} - In `vanilla-back-to-top.min.js`, I increased the scroll depth before the button appears on-page from 1px to 1000px.
Locate this entry:
and change it to:M=void 0===T?1:TM=void 0===T?1000:T
»
Visitors: Loading...
