Animate on Scroll

Animate on scroll module.

Modulegithub.com/hugomods/aos
StatsGitHub Stars Used By Used By Used By Used By

The github.com/hugomods/aos module add support for the AOS library, which allow attaching simple animations on elements that can be triggered on scroll.

Import the Module§

hugo.yaml

1module:
2  imports:
3  - path: github.com/hugomods/aos

hugo.toml

1[module]
2  [[module.imports]]
3    path = 'github.com/hugomods/aos'

hugo.json

1{
2   "module": {
3      "imports": [
4         {
5            "path": "github.com/hugomods/aos"
6         }
7      ]
8   }
9}

Import the Styles§

1{{ partialCached "aos/assets/css" . }}

Import the JavaScript§

1{{ partialCached "aos/assets/js" . }}

Site Parameters§

hugo.yaml

1params:
2  aos:
3    css_url: https://unpkg.com/aos@next/dist/aos.css
4    js_url: https://unpkg.com/aos@next/dist/aos.js

hugo.toml

1[params]
2  [params.aos]
3    css_url = 'https://unpkg.com/aos@next/dist/aos.css'
4    js_url = 'https://unpkg.com/aos@next/dist/aos.js'

hugo.json

1{
2   "params": {
3      "aos": {
4         "css_url": "https://unpkg.com/aos@next/dist/aos.css",
5         "js_url": "https://unpkg.com/aos@next/dist/aos.js"
6      }
7   }
8}

You don’t have to specify those parameters unless necessary.

css_url§

The css_url represents the URL of AOS styles, you can replace it with any CDN, or even a self hosted.

js_url§

Similarly, this parameter is used to specify the URL of AOS JavaScript, feel free to replace it with whatever CDN you like.

AOS Options§

To tweak the AOS options, you’ll need to create the assets/mods/aos/js/options.ts file in following form.

1export default {
2  delay: '1s'
3  // ...
4}

Usage§

AOS set animation by using data-aos attribute:

1<div data-aos="fade-in"></div>

And adjust behavior by using data-aos-* attributes:

 1<div
 2  data-aos="fade-up"
 3  data-aos-offset="200"
 4  data-aos-delay="50"
 5  data-aos-duration="1000"
 6  data-aos-easing="ease-in-out"
 7  data-aos-mirror="true"
 8  data-aos-once="false"
 9  data-aos-anchor-placement="top-center">
10</div>

https://github.com/michalsnik/aos#2-set-animation-using-data-aos-attribute.

You can also use AOS with Markdown block attributes in the content file, which is more convenient than creating shortcodes sometime.

Examples§

AOS Example Using Markdown Block Attributes§

Please make sure you’ve enabled the markup.goldmark.parser.attribute.block.

hugo.yaml

1markup:
2  goldmark:
3    parser:
4      attribute:
5        block: true
6        title: true

hugo.toml

1[markup]
2  [markup.goldmark]
3    [markup.goldmark.parser]
4      [markup.goldmark.parser.attribute]
5        block = true
6        title = true

hugo.json

 1{
 2   "markup": {
 3      "goldmark": {
 4         "parser": {
 5            "attribute": {
 6               "block": true,
 7               "title": true
 8            }
 9         }
10      }
11   }
12}
1The first fade up line.
2{ data-aos="fade-up" }
3
4The second fade up line with `200ms` delay.
5{ data-aos="fade-up" data-aos-delay="200" }

The first fade up line.

The second fade up line with 200ms delay.