Synchronizes a scrollable element with earth locations.
Example: ScrollSync with Page
Example: ScrollSync with Element
Load the file /modules/miniature.earth.scrollsync.js or copy the code to your script and customize it to your needs.
[
{ element: firstElement, location : { lat: 30.5, lng: 40.1 } },
{ element: secondElement, location : { lat: 28.2, lng: 72.3 } }
]
myearth.addEventListener( "ready", function() {
var elements = [];
document.querySelectorAll('.sections').forEach( function(item) {
var latlng = item.dataset.location.split(',');
var marker = myearth.addMarker( {
location : { lat: latlng[0], lng: latlng[1] }
} );
elements.push( {
element : item,
location : { lat: latlng[0], lng: latlng[1] },
marker : marker // custom variable
} );
} );
Earth.ScrollSync.enable(
// earth
myearth,
// container
document.documentElement,
// elements
elements,
// activate
function(new_element, old_element) {
if (new_element) {
new_element.marker.color = 'green';
new_element.element.classList.add('active');
}
if (old_element) {
old_element.marker.color = 'red';
old_element.element.classList.remove('active');
}
}
);
} );