Add

Lorem ipsum

Lorem ipsum

A
A
A
Design

3 views

4 min

How to Create Section Navigation with Dots in Webflow

Learn how to create dot navigation with the active section highlighted as you scroll in Webflow.

In this tutorial, Sandro, cofounder of the Gemeos Webflow agency, shows you how to create a section progress bar (dot navigation) in Webflow, with the active dot highlighted as you scroll.

Example

Scroll through the area — the dots on the right show your position

Introduction

Webflow is a no-code tool that generates clean HTML, CSS, and JavaScript without writing a single line of code.

Features

Visual designer, built-in CMS, native animations, hosting included, and one-click deployment.

Performance

Built-in Fastly CDN, automatically optimized images, and excellent Core Web Vitals by default.

Pricing

Plans start at €14/month. Hosting and CMS included, with no maintenance or plugin fees.

Conclusion

Webflow is the best choice for agencies and marketing teams that want performance and independence.

Active section: Introduction

AttributeElementExample value
data-progress-sectionWebflow sectionSection name (e.g. 'Introduction')
id='section-progress'Container divInjected as fixed right by the script

1. Add the attributes to your sections

On each section of your page, add the custom attribute data-progress-section with the section name as the value (e.g. Introduction, Features...). These names appear in a tooltip when you hover over the dots.

2. Create the container in Webflow

Create an empty Div with the ID section-progress. The script will handle its position (fixed right, vertically centered). You can leave it anywhere in the DOM.

3. Add the script in Footer code

(function() {
var sections = document.querySelectorAll('[data-progress-section]');
var container = document.getElementById('section-progress');
if (!sections.length || !container) return;

var dots = [];
container.style.cssText = 'position:fixed;right:24px;top:50%;transform:translateY(-50%);' +
'display:flex;flex-direction:column;gap:8px;z-index:999;';

sections.forEach(function(section, i) {
var dot = document.createElement('div');
dot.style.cssText = 'width:8px;height:8px;border-radius:50%;background:#e5e7eb;' +
'transition:all 0.3s;cursor:pointer;';
dot.title = section.dataset.progressSection || ('Section ' + (i + 1));
dot.addEventListener('click', function() {
section.scrollIntoView({ behavior: 'smooth' });
});
container.appendChild(dot);
dots.push(dot);
});

function update() {
var active = 0;
sections.forEach(function(s, i) {
if (s.getBoundingClientRect().top <= window.innerHeight / 2) active = i;
});
dots.forEach(function(d, i) {
var isActive = i === active;
d.style.background = isActive ? '#a78bfa' : i < active ? '#d4b8fc' : '#e5e7eb';
d.style.width = isActive ? '10px' : '8px';
d.style.height = isActive ? '10px' : '8px';
});
}

update();
window.addEventListener('scroll', update, { passive: true });
})();

good to know

On mobile, dot navigation takes up space and can get in the way. Hide it with @media (max-width: 768px) { #section-progress { display: none !important; } }. On desktop with lots of sections (10+), reduce the dot size to 6px and the spacing to 6px so the navigation doesn't run off the screen.

Conclusion

Dot navigation is a classic for landing pages and one-pagers. Use cases:

  • Landing pages with clearly defined sections
  • One-page showcase or portfolio sites
  • Articles with long chapters

Scroll through the area to see the dots update

Section 1 — Introduction

The content for this section appears here.

Section 2 — Features

The main features are described here.

Section 3 — Pricing

The plans and pricing are shown here.

Section 4 — Contact

The contact form is here.

Good to know

Heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum dolor sit amet consectetur.

Lorem ipsum dolor sit amet consectetur. Aliquam orci sagittis dignissim sapien praesent donec.

Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Published on

You might be interested in these tutorials

Similar tutorials

SEO / GEO

5 min read

5 views

How to Set Up a Redirect in Webflow? (2026)

Updated on 19.12.2025 by Sandro DA SILVA

SEO / GEO

5 min read

5 views

Add structured data to your Webflow site?

Updated on 21.08.2025 by Sandro DA SILVA

No-code

5 min read

5 views

How to Obfuscate a Link in Webflow

Updated on 23.04.2025 by Sandro DA SILVA

Let’s f*****G GO !!

Ready to launch
Your business?

Alexandre

Max

Enora

Bryan

Cannelle

Tiphaine

You'll :heart: our collaboration...