Scrolly Map Gallery
Every scrolly-map.html transition, basemap switch, and marker option, demonstrated live with the exact code that produced it. Start with Scroll-Based Features if you haven’t seen the basic pattern yet.
A scrolly block can use an interactive Leaflet map as its pinned background instead of an image or video — useful for narrating a journey between locations, or detailing a single site as the reader scrolls. Swap scrolly-media.html for scrolly-map.html; scrolly-step.html and scrolly-end.html are shared with the image/video blocks, just called with map-* parameters instead of objectid/src.
The eight examples below each demonstrate one capability in isolation.
1. Basic flyTo between two locations
Each step on a map block can declare a map-lat/map-lng/map-zoom to fly to. The default transition is an animated flyTo.
Moscow, Idaho → Hell's Half Acre Lookout
Starting over the University of Idaho campus in Moscow, Idaho.
The map flies to Hell’s Half Acre Lookout, roughly 100 miles southeast, as this panel enters view — no page reload, no image swap, just an animated flyTo.
Copy this:
{% include essay/feature/scrolly-map.html latitude="46.725562" longitude="-117.009633" zoom="12" caption="Moscow, Idaho → Hell's Half Acre Lookout" %}
**Starting over the University of Idaho campus** in Moscow, Idaho.
{% include essay/feature/scrolly-step.html map-lat="45.64579" map-lng="-114.62838" map-zoom="10" %}
**The map flies to Hell's Half Acre Lookout**, roughly 100 miles southeast, as this panel enters view — no page reload, no image swap, just an animated `flyTo`.
{% include essay/feature/scrolly-end.html %}
2. Instant setView vs. animated flyTo
map-transition controls how the map gets to a step’s target: setView jumps instantly, flyTo (the default) animates.
Watch the transition style on the next two panels — one jumps, the other flies.
Instant jump. map-transition="setView" snaps straight to Spokane with no animation — useful when you want an abrupt cut rather than a journey.
Animated flight. The default flyTo (set explicitly here) glides to Hell’s Half Acre Lookout instead of cutting to it.
Copy this:
{% include essay/feature/scrolly-map.html latitude="46.725562" longitude="-117.009633" zoom="6" %}
**Watch the transition style on the next two panels** — one jumps, the other flies.
{% include essay/feature/scrolly-step.html map-lat="47.66432" map-lng="-117.428031" map-zoom="11" map-transition="setView" %}
**Instant jump.** `map-transition="setView"` snaps straight to Spokane with no animation — useful when you want an abrupt cut rather than a journey.
{% include essay/feature/scrolly-step.html map-lat="45.64579" map-lng="-114.62838" map-zoom="10" map-transition="flyTo" %}
**Animated flight.** The default `flyTo` (set explicitly here) glides to Hell's Half Acre Lookout instead of cutting to it.
{% include essay/feature/scrolly-end.html %}
3. pan transition
map-transition="pan" moves the center without changing zoom — a Leaflet panTo, useful for small repositions that shouldn’t feel like a “flight.”
Centered on campus at a fixed zoom.
A short pan slides the view toward downtown Moscow without zooming in or out — the frame stays the same size, only the center moves.
Copy this:
{% include essay/feature/scrolly-map.html latitude="46.725562" longitude="-117.009633" zoom="13" %}
**Centered on campus at a fixed zoom.**
{% include essay/feature/scrolly-step.html map-lat="46.714253" map-lng="-116.983777" map-transition="pan" %}
**A short pan** slides the view toward downtown Moscow without zooming in or out — the frame stays the same size, only the center moves.
{% include essay/feature/scrolly-end.html %}
4. Basemap switching mid-scroll
map-basemap on a step swaps the tile layer as it enters view — useful for moving from a street map into satellite imagery to reveal terrain.
Starting on the default street basemap.
Switching to satellite imagery with map-basemap="Esri_WorldImagery" reveals the surrounding forest terrain around the lookout without moving the map.
Copy this:
{% include essay/feature/scrolly-map.html latitude="45.64579" longitude="-114.62838" zoom="12" basemap="Esri_WorldStreetMap" %}
**Starting on the default street basemap.**
{% include essay/feature/scrolly-step.html map-basemap="Esri_WorldImagery" %}
**Switching to satellite imagery** with `map-basemap="Esri_WorldImagery"` reveals the surrounding forest terrain around the lookout without moving the map.
{% include essay/feature/scrolly-end.html %}
5. Curated markers with auto-opening popups
markers takes a comma-separated list of objectids and plots each as a marker. Pair a step’s map-objectid with map-open-popup="true" to fly to a marker and open its popup automatically — a way to “feature” specific collection items as the reader scrolls.
Two Spokane locations are plotted as markers from the start. Scroll to feature each one.
Featuring the Spokane County Court House — the map flies in and its popup opens on its own, no click required.
Featuring the second location — the previous popup closes and this marker’s popup opens as the map flies over.
Copy this:
{% include essay/feature/scrolly-map.html latitude="47.66" longitude="-117.43" zoom="11" markers="demo_002,demo_018" %}
**Two Spokane locations are plotted** as markers from the start. Scroll to feature each one.
{% include essay/feature/scrolly-step.html map-objectid="demo_002" map-open-popup="true" map-zoom="15" %}
**Featuring the Spokane County Court House** — the map flies in and its popup opens on its own, no click required.
{% include essay/feature/scrolly-step.html map-objectid="demo_018" map-open-popup="true" map-zoom="15" %}
**Featuring the second location** — the previous popup closes and this marker's popup opens as the map flies over.
{% include essay/feature/scrolly-end.html %}
6. The whole collection as markers
show-collection="true" plots every geo-tagged item in your metadata CSV — the same items shown on the full collection map page — directly on the scrolly background.
Every geo-tagged demo item appears as a marker on this regional view — no need to list objectids one at a time.
Flying south still keeps every collection marker visible on the map underneath.
Copy this:
{% include essay/feature/scrolly-map.html latitude="46.7" longitude="-117.0" zoom="5" show-collection=true %}
**Every geo-tagged demo item appears as a marker** on this regional view — no need to list objectids one at a time.
{% include essay/feature/scrolly-step.html map-lat="46.0" map-lng="-116.0" map-zoom="6" %}
**Flying south** still keeps every collection marker visible on the map underneath.
{% include essay/feature/scrolly-end.html %}
7. Interactive sidecar map
layout="sidecar" pins the map on the right at a smaller scale and, unlike the full-bleed immersive layout, defaults to interactive="true" — the reader can drag and scroll-zoom it directly, since it’s no longer competing with the page for the whole viewport’s scroll gesture.
This map is explorable. Try dragging or scrolling to zoom — sidecar’s smaller, inset frame makes that safe without hijacking the page scroll. (Interactivity is automatically disabled on narrow/mobile screens, where sidecar collapses to a stacked overlay.)
Steps still drive the map even in sidecar mode — this panel flies toward downtown Moscow, and the reader can keep exploring from there.
Copy this:
{% include essay/feature/scrolly-map.html objectid="demo_001" layout="sidecar" zoom="14" %}
**This map is explorable.** Try dragging or scrolling to zoom — sidecar's smaller, inset frame makes that safe without hijacking the page scroll. (Interactivity is automatically disabled on narrow/mobile screens, where sidecar collapses to a stacked overlay.)
{% include essay/feature/scrolly-step.html map-lat="46.714253" map-lng="-116.983777" map-zoom="13" %}
**Steps still drive the map** even in sidecar mode — this panel flies toward downtown Moscow, and the reader can keep exploring from there.
{% include essay/feature/scrolly-end.html %}
8. objectid-seeded block
Instead of raw coordinates, scrolly-map.html can seed its center and an initial marker straight from a collection item’s latitude/longitude — the same convenience feature/mini-map.html offers.
Centered automatically on Hell’s Half Acre Lookout, with a marker for demo_008 already plotted, just from passing objectid="demo_008" — no coordinates typed by hand.
A step can still move the map even when the block was seeded by objectid — this panel zooms in further without changing the center.
Copy this:
{% include essay/feature/scrolly-map.html objectid="demo_008" zoom="13" %}
**Centered automatically on Hell's Half Acre Lookout**, with a marker for `demo_008` already plotted, just from passing `objectid="demo_008"` — no coordinates typed by hand.
{% include essay/feature/scrolly-step.html map-zoom="16" %}
**A step can still move the map** even when the block was seeded by `objectid` — this panel zooms in further without changing the center.
{% include essay/feature/scrolly-end.html %}
All Parameters
scrolly-map.html — opens a map-background block (used instead of scrolly-media.html):
| Parameter | Default | Description |
|---|---|---|
objectid |
— | Seeds center/zoom from a collection item’s latitude/longitude; also plots a marker for it |
latitude / longitude |
theme.yml site defaults | Initial map center (required unless using objectid) |
zoom |
theme.yml zoom-level (5) |
Initial zoom level |
basemap |
theme.yml map-base |
Esri_WorldStreetMap, Esri_NatGeoWorldMap, Esri_WorldImagery, OpenStreetMap_Mapnik, Stadia_AlidadeSmooth, Stadia_StamenToner |
interactive |
false (immersive) / true (sidecar) |
Enable reader drag/scroll-zoom/touch-zoom (always off on mobile) |
markers |
— | Comma-separated objectids to plot as a curated marker set |
show-collection |
false |
Plot every geo-tagged collection item as markers |
cluster |
theme.yml map-cluster |
Cluster markers when show-collection is used |
flyto-duration |
2 |
Default flyTo animation duration (seconds) for this block’s steps |
caption |
— | Small credit/attribution line, same as scrolly-media.html |
layout, position, text-background, step-height |
same as scrolly-media.html |
Panel layout and pacing |
scrolly-step.html — map-specific parameters (used alongside a scrolly-map.html block; a step with none of these leaves the map wherever it was):
| Parameter | Description |
|---|---|
map-lat / map-lng |
Target coordinates for this step |
map-zoom |
Target zoom (keeps current zoom if omitted) |
map-objectid |
Resolve the target from a collection item instead of raw coordinates |
map-transition |
flyTo (default, animated), setView (instant), or pan (moves center only, no zoom change) |
map-basemap |
Swap the basemap tile layer on this step |
map-open-popup |
objectid of a marker to open (or true when paired with map-objectid) |
map-flyto-duration |
Per-step override of the block’s flyto-duration |
Next Steps
→ Scrolly Media Gallery — every animation, layout, and video variant.